本篇主要介绍numpy中的数组操作:
1.多维数组的一元操作
2.组合数组
3.数组分割
4.数组复制
1.多维数组的一元操作
sum min max amax amin mean add multiply
np.abs(a) np.fabs(a) : 取各元素的绝对值
np.sign(a) : 计算各元素的符号值 1(+),0,-1(-)
np.sqrt(a) : 计算各元素的平方根
np.square(a): 计算各元素的平方
np.log(a) np.log10(a) np.log2(a) : 计算各元素的自然对数、10、2为底的对数np.exp(a) : 计算各元素的指数值
np.ceil(a) np.floor(a) : 计算各元素的ceiling 值, floor值(ceiling向上取整,floor向下取整)
np.rint(a) : 各元素 四舍五入
np.modf(a) : 将数组各元素的小数和整数部分以两个独立数组形式返回
sum
语法格式:
数组名称.sum(axis=某维)
其余维不变,对指定维求和,指定维消失。
不指定维数,表示对数组所有元素求和。
二维数组较好理解,如
b = np.arange(12).reshape(3,4)
b维度(3,4)
axis=0,在第一维度上求和,即按列求和,在行上压缩数据
axis=1,在第二维度上求和,即按行求和,在列上压缩数据
如:
b = np.arange(12).reshape(3,4)
'''
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
'''
b.sum(axis=0) # 按列求和
'''
array([12, 15, 18, 21])
'''
b.sum(axis=1) # 按行求和
'''
array([ 6, 22, 38])
'''
b=np.arange(24).reshape(2,3,4)
b
'''
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]]])
'''
b.sum(axis=0)
'''
array([[12, 14, 16, 18],
[20, 22, 24, 26],
[28, 30, 32, 34]])
'''
#(2,3,4)变为(3,4) 下标2的维消失,可以想象成数据压缩到了指定维上
b.sum(axis=1)
'''
array([[12, 15, 18, 21],
[48, 51, 54, 57]])
'''
#(2,3,4)变为(2,4)
b.sum(axis=2)
'''
array([[ 6, 22, 38],
[54, 70, 86]])
'''
#(2,3,4)变为(2,3)
b.sum(axis=0) 等同与 b[0,:,:]+b[1,:,:]
b.sum(axis=1) 等同与 b[:,0,:]+b[:,1,:]+b[:,2,:]
b.sum(axis=2) 等同与 b[:,:,0]+b[:,:,1]+b[:,:,2]+b[:,:,3]
min、max、amin、amax
语法格式:
数组名称.min(axis=某维)
同
numpy.amin(数组名称,axis=某维
指定维度下,其他维最小值