Numpy教程
写在前面
这里只是把一些Numpy的基本的使用语法记录下来了,并没有详细的解释啥的,仅仅作为笔记使用,之后有时间会慢慢修改补充的。
- Numpy是一种高效运算工具
- Numpy的基本数据结构是ndarray,其实就是数组:smile:
- ndarray 只存储同一类型的数据,也就是说你并不能在一个变量中既存储字符有存数字,这点和数组一样
- Numpy专门针对ndarray进行了优化,所以比python的list操作更快,底层是用C语言编写,内部解除了GIL(全局解释器锁)
定义ndarray数组
1 | import numpy as np |
ndarray的复制
1 | np.array() # 深拷贝 |
示例:当修改data中的数据后,x,z都不变,而y却发生了改变

常用属性
1 | ndarray.shape # ndarray类型的数组的行列数 |
生成特殊的数组
1 | np.ones((3,4)) # 生成3行4列,元素都为1的数组 |
1 | data1 = np.random.rand(100,1) # 参数是行,列 返回100行1列的数组,单个元素取值0-1之间,且满足均匀分布 |
1 | # 生成固定范围的随机的一维数组 |
1 | # para1:最小值;para2:最大值,para3:取值数量 所生成的100个数据服从均匀分布 |
索引、切片
1 | data = np.random.normal(loc=0,scale=1,size=[8,10]) |
修改ndarray的形状
1 | data.reshape(10,8) # 将8行10列的数据 转成了10行8列的数据,返回新的数据,并不会修改原始数据,如果将参数设为-1,那么 |
ndarray数据类型修改
1 | data.astype("int32") # 改成int型数据data.tostring() # 转成字符串型数据 |
ndarray去重
1 | np.unique(data) # 删除所有重复的数据,并将未被删除的的数据往前填充空位 |
ndarray运算
逻辑运算
1 | data = np.random.normal(0,1,(8,10)) |


布尔索引
1 | # 布尔索引,找出data中所有大于0.5的数据data[data>0.5]# 找出data中所有大于0.5的数据,令它们都为2 |
三元运算符
1 | np.where(data>1,1,0) |
统计运算
1 | # 统计运算 最小值,max,mean,median |
判断函数
1 | np.all(data) # 当所有数据都为True时,才返回True 如果数据中只要有一个false就返回false |
数组与数的运算
1 | data +1 # data数组中所有的元素 +1 |
广播机制
广播机制其实不难,不过看视频可能更加详细、形象 B站视频链接
1 | data +1 # data数组中所有的元素 +1 |
矩阵运算
两种方法存储矩阵
1.ndarray
2.matrix
1 | np.mat([80,86]) # matrix存储 |
矩阵运算
1 | a = np.matrix([[1,2,3,4],[2,3,4,5]])b = np.matrix([[1],[2],[3],[4]])a*ba+ba= [[1,0],[0,1]]inv = np.linalg.inv(a) |

矩阵/数组合并
1 | a = np.array([[1,2,3],[4,5,6]]) |


- 本文标题:Numpy教程
- 本文作者:Luo zerone
- 创建时间:2022-05-09 22:32:28
- 本文链接:http://zer-one.github.io/2022/05/09/numpy/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!