目录
一、简介
NumPy(Numerical Python) 是Python语言的一个扩展程序库,支持大量维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。ndarray 对象是用于存放同类型元素的多维数组。
二、主要内容
1、ndarray数组的创建方法
(1)列表与元组的形式
#列表形式
x = np.array([1, 2, 3])
#元组形式
y = np.array((1, 2, 3))
(2)NumPy中函数创建
np.arange(10)#类似range()函数,返回ndarray类型,元素从0到n‐1
np.ones([2, 3])#np.ones(shape),根据shape生成一个全1数组,shape是元组类型
np.zeros([2, 3])#同上
np.full([2,], 5)#np.full(shape,val) 根据shape生成一个数组,每个元素值都是val
np.eye(5)#创建一个正方的n*n单位矩阵,对角线为1,其余为0
np.ones_like([1, 2, 3])#根据数组a的形状生成一个全1数组
np.zeros_like([1, 2])#根据数组a的形状生成一个全0数组
np.full_like([[1, 2, 3],[4, 5, 6]],5)#根据数组a的形状生成一个数组,每个元素值都是val
np.linspace(1, 10, 3)#等差 根据起止数据等间距地填充数据,形成数组
np.concatenate(([1],[2]))#将两个或多个数组合并成一个新的数组
2、ndarray对象的属性
# N维数组对象:ndarray
a = np.array([1,2,3,4])#一维数组对象
b = np.array([[1,2,3],[4,5,6]])#二维数据对象
# 1、N维数组的维度
a.ndim, b.ndim
# 2、数组的形状
a.shape, b.shape
# 3、数组中元素的个数
a.size, b.size
# 4、数组元素的类型
a.dtype, b.dtype
3、ndarray的元素类型
4、 ndarray数组的变换(形状、类型)
#修改数组形状的函数:reshape、resize
np.ones((2,3,4)).reshape([4,6])#根据shape[4,6]修改原数组的形状,但是不改变原数组
x = np.zeros((2, 3))
x.resize((3, 2))#修改形状,同时修改原数组
#修改数组元素的数据类型
x.dtype #先查看数据类型
y = x.astype(np.int64) #类型转换
ls = y.tolist()#数组向列表转换
5、ndarray数组的操作(索引与切片)
注意:索引就是根据具体位置下标获取元素,而切片是获取一串元素子集(切片表示为“:”)
#索引操作
a = np.array([1,2,3,4,5,6])
a[5],a[-1]#从左开始:0递增;从右开始:-1递减
#切片操作
a = np.array([1,2,3,4,5,6])
a[1:4:2]#起始编号:终止编号(不含):步长
注意:当然也可以选择某一维度进行切片操作
b = np.arange(24).reshape((2,3,4))
b[:,1:3,:]
6、ndarray数组的运算
(1)一元运算
函数 | 说明 |
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.cosh(x)
np.sin(x) np.sinh(x)
np.tan(x) np.tanh(x)
| 计算数组各元素的普通型和双曲型三角函数 |
np.exp(x)
| 计算数组各元素的指数值 |
np.sign(x)
|
计算数组各元素的符号值,
1(+), 0, ‐1(‐)
|
(2)二元运算
函数 | 说明 |
+ ‐ * / **
| 两个数组各元素进行对应运算 |
np.maximum(x,y) np.fmax()
np.minimum(x,y) np.fmin()
| 元素级的最大值/最小值计算 |
np.mod(x,y)
| 元素级的模运算 |
np.copysign(x,y)
| 将数组y中各元素值的符号赋值给数组x对应元素 |
> < >= <= == !=
| 算术比较,产生布尔型数组 |