Numpy使用
numpy.array对象
- 对象创建
创建 | 功能 | 返回值 |
---|
numpy.array() | 将list、range、tuple等对象转换为numpy.array数组 | numpy.array对象 |
numpy.zeros() | 创建元素全为0的numpy.array数组 | numpy.array对象 |
numpy.ones() | 创建元素全为1的numpy.array数组 | numpy.array对象 |
numpy.eye() | 创建对角元素全为1的numpy.array数组 | numpy.array对象 |
numpy.empty() | 创建一个空的numpy.array数组 | numpy.array对象 |
numpy.arange() | 类似于range(),创建指定范围的numpy.array数组 | numpy.array对象 |
numpy.linspace() | 创建指定范围的指定元素个数的numpy.array数组(一维) | numpy.array对象 |
numpy.random.random() | 创建由0-1之间的随机数构成的numpy.array数组 | numpy.array对象 |
- 对象属性
属性 | 功能 | 返回值类型 |
---|
ndim | 获取数组维度 | 整数 |
shape | 获取数组形状 | 元组 |
size | 获取数组元素个数 | 整数 |
dtype | 获取数组元素类型 | numpy.dtype类型对象 |
T | 矩阵转置 | numpy.array类型对象 |
flat | 类似于flatten()方法,返回可将数组像一维数组一样进行迭代的迭代器 | 迭代器对象 |
- 对象方法
方法 | 功能 | 返回值类型 |
---|
reshape() | 改变数组形状到指定shape | 返回对原对象的引用 |
dot() | 矩阵乘法 | numpy.array类型对象 |
flatten() | 将数组压缩到一维 | numpy.array对象 |
- 支持的基本运算
运算 | 功能 | 返回值 |
---|
+、-、*、/、//、% | 算术运算:按元素进行 | numpy.array对象 |
> 、>=、<、<=、== | 关系运算:按元素进行 | numpy.array对象 |
numpy.sin()/cos()/tan()等 | 三角函数:按元素进行 | numpy.array对象 |
numpy.dot() | 计算矩阵乘法 | numpy.array对象 |
numpy.argmin()/argmax() | 返回数组最小值/最大值的在所有元素中位置,与维度无关 | 整数 |
numpy.min()/max() | 返回数组最小值/最大值,可分行(axis=1)和列(axis=0)进行 | - |
numpy.sum() | 对数组元素求和,可分行(axis=1)和列(axis=0)进行 | - |
numpy.cumsum() | 对数组元素进行累加求和,可分行(axis=1)和列(axis=0)进行 | - |
numpy.diff() | 求后一个元素与前一个元素的差值 | - |
numpy.mean()/average() | 求数组元素的平均值,可分行(axis=1)和列(axis=0)进行 | - |
numpy.median() | 求数组的中位数 ,可分行(axis=1)和列(axis=0)进行 | - |
numpy.nonzero() | 返回非零元素的索引 | - |
numpy.sort() | 对数组元素进行排序 ,可分行(axis=1)和列(axis=0)进行 | - |
numpy.transpose() | 矩阵转置 | - |
numpy.clip() | 将数组元素值截断到指定范围 | - |
- 索引
方式 | 功能 |
---|
a[row][col]、a[row,col] | 索引位与row行col列的元素 |
a[:,col] | 索引位于col列的全部元素 |
a[row]、a[row,:] | 索引位于row行的所有元素 |
a[row,col1:col2] | 索引位于row行的col1列到col2列(不包含col2列)的元素 |
a[[row1,row2,…],[col1,col2,…]] | 索引(row1,col1),(row2,col2),…位置的元素 |
a[row1:row2,col1:col2] | 索引位于row1行到row2行(不包含row2行)的col1列到col2列(不包含col2列)的元素 |
a[条件表达式] | (条件表达式返回的布尔矩阵shape必须等于a.shape)索引布尔值为True的元素 |
for row in A | 对数组的行进行迭代 |
for col in A.T | 对数组的列进行迭代 |
- 合并与分割
函数 | 功能 |
---|
numpy.vstack()/hstack() | 按垂直(水平)方向合并多个数组 |
numpy.concatenate() | 可通过axis=0(垂直)/1(水平)设置合并方向 |
numpy.newaxis | 为数组增加一个维度a[:,np.newaxis]/a[np.newaxis,:]在列(行)上增加一个维度 |
numpy.split() | 将数组分割为指定的块数,可通过axis=0(纵向)/1(横向)指定方向,只能进行等大小分割 |
numpy.array_split() | 功能类似split(),但可进行不等大小分割 |
numpy.vsplit()/hsplit() | 按垂直(水平)方向将数组分割为指定块数 |
- 拷贝
a = numpy.array([1,2,3])
b = a 浅拷贝,b is a = True,对a、b的操作会相互影响
b = a.copy 深拷贝 b is a = False ,a、b独立,相互之间没有影响
统计
import numpy
numpy.mean(a, axis=None, dtype=None, out=None, keepdims=<no value>)
numpy.average(a, axis=None, weights=None, returned=False)
随机数生成
import numpy
numpy.random.seed(0)