前景提要:import numpy as np |
ndarray数组的创建方法:
(一)从python中的列表、元组等类型创建ndarray数组
x = np.array(list/tuple)
分为从列表类型创建、从元组类型创建、从列表和元组类型混合创建
指定数据类型: x = np.array(list/tuple,dtype = np.float32)
当np.array()不指定dtype时,NumPy将根据数据情况关联一个dtype类型
(二)使用NumPy中函数创建ndarray数组
np.arange(n) :类似range()函数,返回ndarray类型,元素从0到n-1
np.ones(shape) :根据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
(三)使用NumPy中其他函数创建ndarray数组
np.linspace():根据起止数据等间距地填充数据,形成数组。此函数有一个参数endpoint,endpoint = False表明结束数据不包含在数组中,此参数默认为True
np.concatenate():将两个或多个数组合并成一个新的数组
问:为什么NumPy大多数生成的数组元素置为浮点数?
因为NumPy用于科学计算,而在科学计算中,我们往往使用的数据都是浮点数
ndarray数组的变换:对于创建后的ndarray数组,可以对其进行维度变换和元素类型变换
ndarray数组的维度变换:
.reshape(shape):不改变数组元素,返回一个shape形状的数组,原数组不变
.resize(shape):与.reshape()功能一致,但修改原数组
.flatten():对数组进行降维,返回折叠后的一维数组,原数组不变
.swapaxes(ax1,ax2):将数组n个维度中两个维度进行调换
ndarray数组的类型变换:new_a = a.astype(new_type)
astype()方法一定会创建新的数组(原始数组的一个拷贝),即使两个类型一致
ndarray数组向列表的转换:ls = a.tolist()
ndarray数组的索引和切片
一维数组的索引和切片:与python的列表类似
多维数组的索引:
多维数组的切片:
ndarray数组的运算
NumPy一元函数
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):计算数组各元素的ceiling值或floor值
np.rint(x):计算数组各元素的四舍五入值
np.modf(x):将数组各元素的小数和整数部分以两个独立数组形式返回
np.cos(x)、np.sin(x)、np.tan(x)、np.cosh(x)、np.sinh(x)、np.tanh(x):计算数组各元素的普通型和双曲型三角函数
np.exp(x):计算数组各元素的指数值
np.sign(x):计算数组各元素的符号值,1(+),0,-1(-)
NumPy二元函数:
+、-、*、/、**:两个数组各元素进行对应运算
np.maximum(x,y)、np.fmax()、np.minimum(x,y)、np.fmin():元素级的最大值/最小值计算
np.mod(x,y):元素级的模运算
np.copysign(x,y):将数组y中各元素值的符号赋值给数组x对应元素
>、<、>=、<=、==、!=:算术比较,产生布尔型数组