numpy,matplotilib学习(菜鸟教程)
所有内容均来自于:
NumPy 教程 | 菜鸟教程
Matplotlib 教程 | 菜鸟教程
numpy模块
numpy.nditer
NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式。
for x in np.nditer(a, order='F'):Fortran order,即是列序优先;for x in np.nditer(a, order='C'):C order,即是行序优先;

修改数组中元素的值
nditer 对象有另一个可选参数 op_flags。 默认情况下,nditer 将视待迭代遍历的数组为只读对象(read-only),为了在遍历数组的同时,实现对数组元素值的修改,必须指定 readwrite 或者 writeonly 的模式。

numpy.ndarray.flat
numpy.ndarray.flat 是一个数组元素迭代器

numpy.ndarray.flatten
numpy.ndarray.flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组,格式如下:
ndarray.flatten(order='C')
参数说明:
- order:'C' -- 按行,'F' -- 按列,'A' -- 原顺序,'K' -- 元素在内存中的出现顺序。

numpy.ravel
numpy.ravel() 展平的数组元素,顺序通常是"C风格",返回的是数组视图(view,有点类似 C/C++引用reference的意味),修改会影响原始数组。
该函数接收两个参数:
numpy.ravel(a, order='C')
参数说明:
- order:'C' -- 按行,'F' -- 按列,'A' -- 原顺序,'K' -- 元素在内存中的出现顺序。

连接数组
| 函数 | 描述 |
|---|---|
concatenate | 连接沿现有轴的数组序列 |
stack | 沿着新的轴加入一系列数组。 |
hstack | 水平堆叠序列中的数组(列方向) |
vstack | 竖直堆叠序列中的数组(行方向) |
分割数组
| 函数 | 数组及操作 |
|---|---|
split | 将一个数组分割为多个子数组 |
hsplit | 将一个数组水平分割为多个子数组(按列) |
vsplit | 将一个数组垂直分割为多个子数组(按行) |
数组元素的添加与删除
| 函数 | 元素及描述 |
|---|---|
resize | 返回指定形状的新数组 |
append | 将值添加到数组末尾 |
insert | 沿指定轴将值插入到指定下标之前 |
delete | 删掉某个轴的子数组,并返回删除后的新数组 |
unique | 查找数组内的唯一元素 |
NumPy 字符串函数
以下函数用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作。 它们基于 Python 内置库中的标准字符串函数。
这些函数在字符数组类(numpy.char)中定义。
| 函数 | 描述 |
|---|---|
add() | 对两个数组的逐个字符串元素进行连接 |
| multiply() | 返回按元素多重连接后的字符串 |
center() | 居中字符串 |
capitalize() | 将字符串第一个字母转换为大写 |
title() | 将字符串的每个单词的第一个字母转换为大写 |
lower() | 数组元素转换为小写 |
upper() | 数组元素转换为大写 |
split() | 指定分隔符对字符串进行分割,并返回数组列表 |
splitlines() | 返回元素中的行列表,以换行符分割 |
strip() | 移除元素开头或者结尾处的特定字符 |
join() | 通过指定分隔符来连接数组中的元素 |
replace() | 使用新字符串替换字符串中的所有子字符串 |
decode() | 数组元素依次调用str.decode |
encode() | 数组元素依次调用str.encode |
最值函数
numpy.amin() 和 numpy.amax():从数组中查找最小元素,最大元素
numpy.amin() 用于计算数组中的元素沿指定轴的最小值。
numpy.amin(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)
参数说明:
a: 输入的数组,可以是一个NumPy数组或类似数组的对象。axis: 可选参数,用于指定在哪个轴上计算最小值。如果不提供此参数,则返回整个数组的最小值。可以是一个整数表示轴的索引,也可以是一个元组表示多个轴。out: 可选参数,用于指定结果的存储位置。keepdims: 可选参数,如果为True,将保持结果数组的维度数目与输入数组相同。如果为False(默认值),则会去除计算后维度为1的轴。initial: 可选参数,用于指定一个初始值,然后在数组的元素上计算最小值。where: 可选参数,一个布尔数组,用于指定仅考虑满足条件的元素。
numpy.argmax() 和 numpy.argmin()
numpy.argmax() 和 numpy.argmin()函数分别沿给定轴返回最大和最小元素的索引。
条件筛选函数
numpy.where()
numpy.where() 函数返回输入数组中满足给定条件的元素的索引。
numpy.nonzero()
numpy.nonzero() 函数返回输入数组中非零元素的索引。
NumPy 线性代数
NumPy 提供了线性代数函数库 linalg,该库包含了线性代数所需的所有功能,可以看看下面的说明:
| 函数 | 描述 |
|---|---|
dot | 两个数组的点积,即元素对应相乘。 |
vdot | 两个向量的点积 |
inner | 两个数组的内积 |
matmul | 两个数组的矩阵积 |
determinant | 数组的行列式 |
solve | 求解线性矩阵方程 |
inv | 计算矩阵的乘法逆矩阵 |
NumPy 矩阵库(Matrix)
NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。
1.matlib.empty()
matlib.empty() 函数返回一个新的矩阵,
2.numpy.matlib.zeros()
numpy.matlib.zeros() 函数创建一个以 0 填充的矩阵。
3.numpy.matlib.ones()
numpy.matlib.ones()函数创建一个以 1 填充的矩阵。
4.numpy.matlib.eye()
numpy.matlib.eye() 函数返回一个矩阵,对角线元素为 1,其他位置为零。
5.numpy.matlib.identity()
numpy.matlib.identity() 函数返回给定大小的单位矩阵。单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为 1,除此以外全都为 0。
6.numpy.matlib.rand()
numpy.matlib.rand() 函数创建一个给定大小的矩阵,数据是随机填充的。
NumPy IO
Numpy 可以读写磁盘上的文本数据或二进制数据。
NumPy 为 ndarray 对象引入了一个简单的文件格式:npy。
npy 文件用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息。
常用的 IO 函数有:
- load() 和 save() 函数是读写文件数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npy 的文件中。
- savez() 函数用于将多个数组写入文件,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npz 的文件中。
- loadtxt() 和 savetxt() 函数处理正常的文本文件(.txt 等) 【txt文件里保存的是数字才可】
例如: 
Matplotlib 绘图标记
fmt 参数
fmt 参数定义了基本格式,如标记、线条样式和颜色。
fmt = '[marker][line][color]' 例如 o:r,o 表示实心圆标记,: 表示虚线,r 表示颜色为红色。
绘图过程如果我们想要给坐标自定义一些不一样的标记,就可以使用 plot() 方法的 marker 参数来定义。
例如:
import matplotlib.pyplot as plt
import numpy as npypoints = np.array([1,3,4,5,8,9,6,1,3,4,5,2,4])plt.plot(ypoints, marker = '^')
plt.show()

marker 可以定义的符号如下:
| 标记 | 符号 | 描述 |
|---|---|---|
| "." |
| 点 |
| "," |
| 像素点 |
| "o" |
| 实心圆 |
| "v" |
| 下三角 |
| "^" |
| 上三角 |
| "<" |
| 左三角 |
| ">" |
| 右三角 |
| "1" |
| 下三叉 |
| "2" |
| 上三叉 |
| "3" |
| 左三叉 |
| "4" |
| 右三叉 |
| "8" |
| 八角形 |
| "s" |
| 正方形 |
| "p" |
| 五边形 |
| "P" |
| 加号(填充) |
| "*" |
| 星号 |
| "h" |
| 六边形 1 |
| "H" |
| 六边形 2 |
| "+" |
| 加号 |
| "x" |
| 乘号 x |
| "X" |
| 乘号 x (填充) |
| "D" |
| 菱形 |
| "d" |
| 瘦菱形 |
| "|" |
| 竖线 |
| "_" |
| 横线 |
| 0 (TICKLEFT) |
| 左横线 |
| 1 (TICKRIGHT) |
| 右横线 |
| 2 (TICKUP) |
| 上竖线 |
| 3 (TICKDOWN) |
| 下竖线 |
| 4 (CARETLEFT) |
| 左箭头 |
| 5 (CARETRIGHT) |
| 右箭头 |
| 6 (CARETUP) |
| 上箭头 |
| 7 (CARETDOWN) |
| 下箭头 |
| 8 (CARETLEFTBASE) |
| 左箭头 (中间点为基准) |
| 9 (CARETRIGHTBASE) |
| 右箭头 (中间点为基准) |
| 10 (CARETUPBASE) |
| 上箭头 (中间点为基准) |
| 11 (CARETDOWNBASE) |
| 下箭头 (中间点为基准) |
| "None", " " or "" | 没有任何标记 | |
| '$...$' |
| 渲染指定的字符。例如 "$f$" 以字母 f 为标记。 |
绘图过程如果我们自定义线的样式,包括线的类型、颜色和大小等。
线的类型
线的类型可以使用 linestyle 参数来定义,简写为 ls。
线的颜色
线的颜色可以使用 color 参数来定义,简写为 c。
线的宽度
线的宽度可以使用 linewidth 参数来定义,简写为 lw,值可以是浮点数,如:1、2.0、5.67 等。
多条线
plot() 方法中可以包含多对 x,y 值来绘制多条线。
grid() 方法
我们可以使用 pyplot 中的 grid() 方法来设置图表中的网格线。
相关文章:
numpy,matplotilib学习(菜鸟教程)
所有内容均来自于: NumPy 教程 | 菜鸟教程 Matplotlib 教程 | 菜鸟教程 numpy模块 numpy.nditer NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式。 for x in np.nditer(a, orderF):Fortran order,即是列序优先&#x…...
Web API(四)之日期对象节点操作js插件重绘和回流
Web API(四)之日期对象&节点操作&js插件&重绘和回流 日期对象实例化方法时间戳DOM 节点插入节点删除节点查找节点父子关系兄弟关系M端事件js插件重绘和回流进一步学习 DOM 相关知识,实现可交互的网页特效 能够插入、删除和替换元素节点能够依据元素节点关系查找…...
27.WEB渗透测试-数据传输与加解密(1)
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:26.WEB渗透测试-BurpSuite(五) BP抓包网站网址:http:…...
山寨windows
我的目标是能够运行windows 下的大部分PE格式的程序,这一点通过实验已经证明完全是可行的。 PE格式主要有exe dll sys等文件,这三个文件可以用相同的函数解析, 主要有以下段组成, 1、文件头,包含DOS文件头、PE文件头…...
unity工程输出的log在哪里?
在编辑器里进行活动输出的log位置: C:\Users\username\AppData\Local\Unity\Editor\Editor.log ------------------------------------ 已经打包完成,形成的exe运行后的log位置: C:\Users\xxx用户\AppData\LocalLow\xx公司\xx项目...
【力扣】7. 整数反转
7. 整数反转 题目描述 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 …...
Android Apk签名算法使用SHA256
Android apk签名算法使用SHA256 本文不介绍复杂的签名过程,说一下Android签名算法使用SHA256。 但是SHA1不是相对安全签名算法,SHA256更加安全一些。 一般大公司才会有这种细致的安全要求。 如何查看apk签名是否是SHA1还是SHA256 1、拿到apk文件&…...
2024.3.13力扣每日一题——最大二进制奇数
2024.3.13 题目来源我的题解方法一 贪心 题目来源 力扣每日一题;题序:2864 我的题解 方法一 贪心 统计1的个数,满足要求的字符串的末尾一位一定是1,所以需要将一位1放到末尾,然后将剩余的1从最高位开始放࿰…...
2024.4.1力扣每日一题——故障键盘
2024.4.1 题目来源我的题解方法一 直接利用StringBuilder的反转函数方法二 字符数组 题目来源 力扣每日一题;题序:2810 我的题解 方法一 直接利用StringBuilder的反转函数 使用StringBuilder构造结果,并利用其反转函数进行翻转 时间复杂度…...
第十四届蓝桥杯C/C++大学B组题解(一)
1、日期统计 #include <bits/stdc.h> using namespace std; int main() {int array[100] {5, 6, 8, 6, 9, 1, 6, 1, 2, 4, 9, 1, 9, 8, 2, 3, 6, 4, 7, 7,5, 9, 5, 0, 3, 8, 7, 5, 8, 1, 5, 8, 6, 1, 8, 3, 0, 3, 7, 9,2, 7, 0, 5, 8, 8, 5, 7, 0, 9, 9, 1, 9, 4, 4, 6,…...
4.网络编程-websocket(golang)
目录 什么是websocket golang中使用websocket Server端 Client端 什么是websocket WebSocket是一种在互联网上提供全双工通信的协议,即允许服务器和客户端之间进行双向实时通信的网络技术。它是作为HTML5的一部分标准化的,旨在解决传统HTTP协议在实…...
docker安装部署mysql后忘记root密码
应用场景是:用docker安装完mysql后,使用安装时候设置的密码登录不上MySQL; 1、修改docker映射出mysql的配置文件:my.cnf 在mysqld最下方添加skip-grant-tables进入安全模式(随意一个密码即可登录mysql) [m…...
c++的学习之路:14、list(1)
本章讲一下如何使用list,代码在文章末 目录 一、list介绍 二、增 三、删 四、查和改 五、交换 六、代码 一、list介绍 首先还是看一看官方文档的介绍如下图,如下方五点: 1. list是可以在常数范围内在任意位置进行插入和删除的序列式…...
huawei 华为交换机 配置 VLAN 聚合示例
组网需求 某公司拥有多个部门且位于同一网段,为了提升业务安全性,将不同部门的用户划分到不同VLAN 中,如 图 5-7 所示, VLAN2 和 VLAN3 属于不同部门。各部门均有访问Internet需求,同时由于业务需要,不同部…...
【QT+QGIS跨平台编译】056:【pdal-dimbuilder+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
点击查看专栏目录 文章目录 一、pdal介绍二、dimbuilder介绍三、pdal下载四、文件分析五、pro文件六、编译实践七、生成Dimension.hpp八、生成pdal_features.hpp一、pdal介绍 PDAL(Point Data Abstraction Library)是一个开源库,用于处理点云数据的获取、过滤、转换、分析和…...
【Python】探索Python中的aiohttp:构建高效并发爬虫
后来 我总算学会了 如何去爱 可惜你 早已远去 消失在人海 后来 终于在眼泪中明白 有些人 一旦错过就不再 🎵 HouZ/杨晓雨TuTu《后来》 在数据密集和网络密集的任务中,提高程序的执行效率是非常重要的。Python作为一门强大的编程语言…...
创建真实项目vue2项目
1. 创建 vue create 项目名 2. 选择自定义 3. 勾选以下必备选项 4.选择使用vue2 5. 选择哈希模式(n); css选择Less 6. ESLint校验 选择 7. 保存(按照默认) 8. 在哪里添加ESLint文件 9. 要不要把这个改成将来的预设&am…...
【大数据】安装hive-3.1.2
1、上传HIVE包到/opt/software目录并解压到/opt/modules/ tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/modules/ 2、修改路径 mv /opt/modules/apache-hive-3.1.2-bin/ /opt/modules/hive 3、将hIVE下的bin目录加入到/etc/profile中 export HIVE_HOME/opt/module…...
STM32工程 如何设置堆栈大小(Heap和Stack)
方法1:通过CubeMX、CubeIDE 配置 方法2:直接在启动文件中修改 (适合所有Keil工程) Heap、Stack的值大小,不管使用哪种开发环境,它俩都肯定在启动文件中。 可以通过CtrlF,搜索: Heap࿰…...
光纤资源运维管理升级方案,让您的网络资产价值倍增!
光纤资源管理的现状与风险 1. 管理现状 ▌▶ 排查难 ▌▶ 跟踪难 2. 潜在风险 故障隐患 资源丢失 增加业务中断时长 纤心占用不清 障排查复杂 运维压力巨大 基于数字孪生物联网技术的数字化管理升级方案 1. 快速创建光纤资源数字孪生空间 市级 区级 街道 光缆 机房 机柜 2…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
