NumPy 数组的维数(dimensions)
NumPy 数组的维数(dimensions)
,一维数组的秩为 1,二维数组的秩为 2,以此类推。在numpy中用array.ndim
查看。
NumPy 数组的轴(axis)
在 NumPy中,有个概念叫轴(axis)
,轴的个数等于数组的维数。设axis=i
,则Numpy沿着第i
个下标变化的方向进行操作。
之所以叫轴,我是这么理解的,以这个2维矩阵为例:
array=np.arange(1,10,1).reshape((3,3))
[[1 2 3]
[4 5 6]
[7 8 9]]
可以想象数组的每一个元素是存在以下小方框中,可以通过在x轴(axis=0)上的坐标和在y轴(axis=1)上的坐标来确定它们的位置。
如果还不懂可以通过下面的例子进行理解:
轴(axis)的使用案例
对于以下NumPy数组:
array = np.random.randint(0, 3, [3,2,4,5])
[[[[0 1 1 2 2]
[0 0 2 0 2]
[2 1 1 0 0]
[1 1 2 1 0]]
[[1 2 0 2 0]
[2 0 1 1 2]
[0 2 2 0 2]
[1 2 2 0 0]]]
[[[0 1 0 1 2]
[0 1 0 0 1]
[0 1 1 0 1]
[2 2 0 1 2]]
[[2 2 1 2 1]
[1 1 1 2 2]
[2 2 1 2 0]
[0 0 1 2 1]]]
[[[1 2 1 2 0]
[1 1 1 1 0]
[1 0 2 1 1]
[0 0 2 1 0]]
[[1 0 2 2 0]
[2 0 0 1 1]
[0 1 1 1 2]
[0 2 1 2 0]]]]
它的维数为4
,它的shape为[3,2,4,5]
。
如果我们要提取出数组中的某个位置的数,我们可以通过下面的语法来得到:
方括号中指定元素坐标的变量我们可以将其看为这个数组的下标
a
r
r
a
y
1
,
1
,
1
,
1
array_{1,1,1,1}
array1,1,1,1,对于这个数组,他有4个轴,从左至右依次为axis=0
轴、axis=1
轴、axis=2
轴、axis=3
轴。
对参数为axis=2
进行sum
操作:
np.sum(array,axis=2)
会得到以下结果:
[[[6 3 4 3 4]
[5 3 4 4 2]]
[[8 6 3 2 2]
[4 6 5 4 5]]
[[4 6 2 4 4]
[3 1 3 4 2]]]
这对每一个
a
r
r
a
y
x
,
y
,
i
,
z
,
i
=
0
,
1
,
2
,
3
array_{x,y,i,z},i=0,1,2,3
arrayx,y,i,z,i=0,1,2,3进行了求和,这个结果的shape
为(3, 2,4, 5)即(3, 2, 5)。