python numpy中axis的含义_Numpy中的axis/axes详解

首先,在Numpy中,维数(dimensions)通过轴(axes)来扩展,轴的个数被称作rank。这里的rank不是线性代数中的rank(秩),它指代的依旧是维数(number of dimensions):

The number of axes (dimensions) of the array. In the Python world, the number of dimensions is referred to as rank.

在数学或者物理的概念中,dimensions被认为是在空间中表示一个点所需要的最少坐标个数,但是在Numpy中,dimensions指代的是axes。也就是说,axes、dimensions、rank这几个概念是相通的。

下面举例子,比如我们在3-D空间中定义三个点,用array的形式表达:

>>>import numpy as np

>>>a = np.array([[1,2,3],[2,3,4],[3,4,9]])

>>>a

array([[1, 2, 3],

[2, 3, 4],

[3, 4, 9]])

按照以往的理解,我们可能会认为这个array是三维的,但实际上在Numpy中,这个array的dimensions,也就是rank的值是等于2的:

>>>np.ndim(a)

2

因为它只有两个axis,只不过这两个axis的长度(length)均为3:

>>>np.shape(a)

(3, 3)

同时,这个矩阵在线性代数中的rank(秩)依旧是3(这里要加以区分):

>>>np.linalg.matrix_rank(a)

3

也就是说,在Numpy中,任何vector都被看作具有不同长度(length)的一维array。

下面继续聊聊axis/axes,我们依旧先定义一个3-D的array:

>>>b = np.array([[[1,2,3,4],[1,3,4,5]],[[2,4,7,5],[8,4,3,5]],[[2,5,7,3],[1,5,3,7]]])

>>>b

array([[[1, 2, 3, 4],

[1, 3, 4, 5]],

[[2, 4, 7, 5],

[8, 4, 3, 5]],

[[2, 5, 7, 3],

[1, 5, 3, 7]]])

>>>b.shape

(3, 2, 4)

我们定义了一个shape为(3, 2, 4)的array,这个shape(用tuple表示)可以理解为在每个轴(axis)上的size,也即占有的长度(length),三个值的含义:axis = 0对应轴上的元素length =

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值