简介
Numpy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组。
Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多。
Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。
ndarray介绍
优势
- 1.内存块风格
- 2.ndarray支持并行化运算(向量化运算)
- 3.Numpy底层使用C语言编写,内部解除了GIL
ndarray的属性
- ndarray.shape 数组维度的元组[***]
- ndarray.ndim 数组维数
- ndarray.size 数组中的元素数量
- ndarray.itemsize 一个数组元素的长度(字节)
- ndarray.dtype 数组元素的类型[*]
ndarray的形状
- 0维 ()
- 1维 (*,)
- 2维 (,)
基本操作
生成数组的方法
-
生成0和1的数组
- np.ones([,])
- np.zeros([,])
-
从现有数组生成
- np.array() 深拷贝
- np.asarray() 浅拷贝
- np.copy() 深拷贝
-
生成固定范围的数组
- np.linspace(start, stop, num)
- np.arange(start, stop, step)
-
生成随机数组
- 生成随机数组
- np.random.uniform(low, high, size)
- 正态分布[****]
- np.random.normal(loc, scale, size)
- 生成随机数组
形状修改
- ndarray.T
- ndarray.reshape([]) 产生新的对象
- ndarray.resize([]) 对自身进行改变
数组去重
- np.unique(temp)
运算
逻辑运算
- 例:test_score > 60
通用判断函数
- np.all() -- 所有满足要求,返回true
- np.any() -- 有一个满足要求,返回true
三元运算符
- np.where(temp>0,1,0)
统计运算
- np.min()
- np.max()
- np.median()
- np.mean()
- np.std()
- np.var()
- np.argmax() -- 返回最大值所在的索引
- np.argmin() -- 返回最小值所在的索引
数组间运算
- 数组与数的运算
arr = np.array([[1, 2, 3, 2, 1, 4], [5, 6, 1, 2, 3, 1]])
arr + 1
arr / 2
# 可以对比python列表的运算,看出区别
a = [1, 2, 3, 4, 5]
a * 3
- 数组与数组的运算 --广播机制
- 维度相等
- shape(其中相对应的一个地方为1)
arr1 = np.array([[0],[1],[2],[3]])
arr1.shape
# (4, 1)
arr2 = np.array([1,2,3])
arr2.shape
# (3,)
arr1+arr2
# 结果是:
array([[1, 2, 3],
[2, 3, 4],
[3, 4, 5],
[4, 5, 6]])
矩阵运算
- (m行, n列)*(n行, l列) = (m行, l列)
- np.matmul()矩阵和矩阵相乘
- np.dot()也可以矩阵和标量相乘