1.1 Numpy的轴axis
轴编号与shape的索引是对等的,这个编号可以理解为高维nd.array.shape产生的元组的索引。shape(3,2,4)表示数组的维度,shape的索引可以看作轴编号,即一条轴其实就是一个维度。
0轴对应最高维度3维,1轴对应第2维度,2轴对应的就是最低维度1维。
以下图为例,一维数组的shape维度是(4,),对应的元组的索引是 [0];二维数组的shape维度是(2,4),对应的元组的索引为[0,1];三维数组的shape维度是(3,2,4),对应的元组的索引为[0,1,2]
此外,索引也可以从负数开始,对于负数索引,-1表示最后一个维度,-2表示导数第二个维度,以此类推。
1.2 axis在Numpy函数中的使用
numpy的函数中用到了axis参数时,轴就可以视为执行操作的方向。
① 当使用Numpy中的聚合函数(如sum、mean、max等)时,可以使用axis参数来指定操作沿着哪个轴执行。例如,对于二维数组,axis=0表示沿着每一列执行操作,而axis=1表示沿着每一行执行操作。
例1:axis=0
import numpy as np
a=np.arange(4).reshape(2,2) #[[0 1] [2 3]]
print(a.max(axis=0))
>>> [2 3]
例2:axis=1
import numpy as np
a=np.arange(4).reshape(2,2) #[[0 1] [2 3]]
print(a.max(axis=1))
>>> [1 3]
② axis用于索引和切片操作
这个跟索引那里比较像,不过多赘述啦
1.3 numpy数组转置换轴
① transpose方法(行列转置)
② swapaxes方法(轴转置)
③ 使用.T属性快速转置
import numpy as np
a=np.arange(9).reshape(3,3)
print(a)
print(a.transpose())
print('-'*30)
print(a.swapaxes(1,0)) #(1,0)就是把原来的轴1放在了第一个索引位置,轴0放在了第二的索引位置
print('-'*30)
print(a.T)
>>> [[0 1 2]
[3 4 5]
[6 7 8]]
------------------------------
[[0 3 6]
[1 4 7]
[2 5 8]]
------------------------------
[[0 3 6]
[1 4 7]
[2 5 8]]
------------------------------
[[0 3 6]
[1 4 7]
[2 5 8]]