Numpy是一个开源的Python科学数据库
- 一个强大的N维数组对象 ndarray
- 广播功能函数
- 整合C/C++/Fortran代码工具
- 线性代数、傅里叶变换、随机数生成等功能
N维数组对象ndarray
np.array()生成一ndarray数组
np.array()输出成[]形式,元素由空格分割
ndarray对象的属性
属性 | 说明 |
a.ndim | 秩,即轴的数量或维度的数量 |
a.shape | ndarray对象的尺度,对于矩阵,n行m列 |
a.size | ndarray对象元素的个数,相当于.shape中n*m的值 |
a.dtype | ndarray对象的元素类型 |
a.itemsize | ndarray对象中每个元素的大小,以字节为单位 |
ndarray数组的创建
- x=np.array(list/tuple,dtype=np.float32)
- 使用NumPy中函数创建ndarray数组
np.arange(n)
np.ones(shape) 生成一个全1数组,shape是元组类型
np.zeros(shape) 根据shape生成一个全0数组,shape是元组类型
np.full(shape,val) 根据shape生成一个数组,每个元素值都是val
np.eye(n) 创建一个正方的n*n单位矩阵,对角线为1,其余为0
np.ones_like(a) 根据数组a的形状生成一个全1数组
np.zeros_like(a) 根据数组a的形状生成一个全0数组
np.full_like(a,val) 根据数组a的形状生成一个数组,每个元素值为val
np.linspace() 根据起止数据等间距地填充数据,形成数组
np.concatenate() 将两个或多个数组合并成一个新的数组
ndarray数组的维度变换
方法 | 说明 |
---|---|
a.reshape(shape) | 不改变原数组,返回一个shape形状的数组,原数组不变 |
a.resize(shape) | 与a.reshape()功能一致,但修改原数组 |
a.swapaxes(ax1,ax2) | 将数组n个维度中两个维度进行调换 |
a.flatten() | 对数组进行降维,返回折叠后的一维数组,原数组不变 |
ndarray数组的类型变换
new_a=a.astype(new_type)
astype()方法一定会创建新的数组(原始数组的一个拷贝),即使两个类型一致。
ndarray数组向列表的转换 ls=a.tolist()
ndarray数组的运算
数组与标量之间的运算作用于数组的每一个元素。
a.mean()
a=a/a.mean()
np.abs(x), np.fabs(x) | 绝对值 |
---|---|
np.sqrt(x), np.square(x) | 平方根,平方 |
np.log(x), np.log10(x), np.log2(x) | 自然对数,10底对数,2底对数 |
np.ceil(x), np.floor(x) | 不超过元素的整数值,小于这个元素的最大整数值 |
np.rint(x) | 各元素的四舍五入值 |
np.modf(x) | 将数组各元素的小数和整数部分以两个独立数组形式返回 |