Numpy是一个开源的Python科学计算基础库,包含:
一个强大的n维数组对象ndarray
广播功能函数
整合代码的工具
线性代数、傅里叶变换、随机数生成等功能
import numpy as np
引用numpy
import numpy as np
def npSum():
a = np.array([0,2,3])#数组
b = np.array([4,5,6])
c = a**2 + b**3
return(c)
print(npSum)
ndarray数组对象
一般要求所有元素类型相同,同志,数组下标从0开始
axis:保存数据的维度
rank:轴的数量
.ndim 秩,维度
.shape 尺度,矩阵的行列
.size 元素的个数
.dtype 元素类型
.itemsize 每个元素的大小,以字节为单位
ndarray数组的创建方法
np.arange(1,3,4)
np.arange(2)
Out[38]: array([0, 1])
np.arange(10)
Out[39]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(1,10)
Out[40]: array([1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(1,10,3)
Out[41]: array([1, 4, 7])
np.arange(10,1,-2)
Out[42]: array([10, 8, 6, 4, 2])
np.ones(shape)
np.zeros(shape)#
np.full(shape,val)#元素值都是val
np.eye(n)#n维的单位矩阵
np.ones_like(a)
np.zero_like(a)
np.full_like(a,val)
a = np.linspace(1,10,4)#以起始数据等间距填充
a
Out[44]: array([ 1., 4., 7., 10.])
b = np.linspace(1,10,4,endpoint=False)#以起始数据等间距填充,不需整数
b
Out[46]: array([1. , 3.25, 5.5 , 7.75])
c = np.concatenate((a,b))#将两个或者多个数组合并
c
Out[48]: array([ 1. , 4. , 7. , 10. , 1. , 3.25, 5.5 , 7.75])
.reshape(shape)#不改变数组元素,返回一个shape形状的数组,原数组不变
.resize(shape)#同上,修改原数组
.swapaxes(ax1,ax2)
.flatten()#对数组降维,返回一维数组,原数组不变
变换类型
new_a = a.astype(new_type)#如np.float
数组向列表的转换
ls = a.tolist()
数组的索引和切片
a = np.array([9,8,7,6,5])
a[2]
Out[50]: 7
a[1:4:2]#起始编号:终止编号:步长
Out[51]: array([8, 6])
多维数据索引
a = np.arange(24).reshape((2,3,4))
a
Out[53]:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
a[1,2,3]
Out[54]: 23
a[-1,-2,-3]
Out[55]: 17
a[:,1,-3]
Out[56]: array([ 5, 17])
a[:,1:3,:]
Out[57]:
array([[[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[16, 17, 18, 19],
[20, 21, 22, 23]]])
数组与标量之间的运算
np.abs(x) np.fabs(x) #绝对值
np.sqrt(x) #平方根
np.square(x) #平方
np.log(x) np.log10(x)
np.ceil(x) np.floor(x) #上下最近的整数
np.rint(x) #四舍五入值
np.modf(x) #将数组分成整数和小数返回
np.exp(x)
np.sign(x)
np.maximum(x) np.fmax(x)
np.mod(x,y) #元素级模运算
np.copysign(x,y) #将y的符号赋予x