" 本文字数:1016 字 || 阅读时间:3分钟 "NumPy
导入方式: import numpy as np
高性能科学计算和数据分析的基础包
ndarray,多维数组(矩阵),具有矢量运算能力,快速、节省空间
矩阵运算,无需循环,可完成类似Matlab中的矢量运算
线性代数、随机数生成
ndarray,N维数组对象(矩阵)
所有元素必须是相同类型
ndim属性,维度个数
shape属性,各维度大小
dtype属性,数据类型
创建ndarray
np.array(collection),collection为序列型对象(list),嵌套序列 (list of list) np.zeros,
np.ones,np.empty 指定大小的全0或全1数组
注意:第一个参数是元组,用来指定大小,如(3,4)
empty不是总是返回全0,有时返回的是未初始的随机值
创建ndarray
np.arange() 类似 range() 注意是 arange。
数据类型
dtype, 类型名+位数,如 float64, int32
转换数组类型 - astype
矢量化
矢量运算,相同大小的数组键间的运算应用在元素上
矢量和标量运算,“广播”— 将标量“广播”到各个元素
索引与切片
一维数组的索引与Python的列表索引功能相似
多维数组的索引
arr[r1:r2, c1:c2]
arr[1,1] 等价 arr[1][1]
[:] 代表某个维度的数据
条件索引
布尔值多维数组 arr[condition] condition可以是多个条件组合
注意,多个条件组合要使用 & |,而不是and or
维数转换
转置 transpose 高维数组转置要指定维度编号 (0,1,2,…)
通用函数
元素级运算 常用的通用函数
ceil, 向上最接近的整数
floor, 向下最接近的整数
rint, 四舍五入 • isnan, 判断元素是否为 NaN(Not a Number)
multiply,元素相乘 divide, 元素相除
np.where
矢量版本的三元表达式 x if condition else y
np.where(condition, x, y) 常用的统计方法
np.mean, np.sum,
np.max, np.min
np.std, np.var
np.argmax, np.argmin
np.cumsum, np.cumprod
注意 多维的话要指定统计的维度,否则默认是全部维度上做统计。
np.all和np.any
all,全部满足条件
any,至少有一个元素满足条件 np.unique
找到唯一值并返回排序结果 操作文本文件
读取 - np.loadtxt