python 数组维度_python – 非常基本的Numpy数组维度可视化

本文介绍了Numpy中的ndarray结构,特别是在3D及更高维度时如何理解和操作数组。通过示例展示了如何通过索引访问不同维度的子数组,并强调了当维度超过3D时,人类难以直观理解,此时主要依赖于使用ndarray.shape属性。此外,还提供了创建1D、2D和3D数组的方法。
摘要由CSDN通过智能技术生成

NumPy中ndarray的解剖结构如下所示:(来源:

Physics Dept, Cornell Uni)

p2PGi.png

一旦离开2D空间并进入3D或更高维空间,行和列的概念就不再有意义了.但是你仍然可以直观地理解3D阵列.例如,考虑你的例子:

In [41]: b

Out[41]:

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

[ 4, 5, 6]],

[[ 7, 8, 9],

[10, 11, 12]]])

In [42]: b.shape

Out[42]: (2, 2, 3)

这里b的形状是(2,2,3).您可以这样想,我们将两个(2×3)矩阵堆叠在一起形成一个3D阵列.要访问第一个矩阵,您将索引到数组b,如b [0],并访问第二个矩阵,您将索引到数组b,如b [1].

# gives you the 2D array (i.e. matrix) at position `0`

In [43]: b[0]

Out[43]:

array([[1, 2, 3],

[4, 5, 6]])

# gives you the 2D array (i.e. matrix) at position 1

In [44]: b[1]

Out[44]:

array([[ 7, 8, 9],

[10, 11, 12]])

但是,如果您输入4D或更高的空间,则很难从阵列本身中获得任何意义,因为我们人类很难看到4D和更多维度.因此,我们宁愿只考虑ndarray.shape属性并使用它.

有关如何使用(嵌套)列表构建更高维数组的更多信息:

对于1D数组,数组构造函数需要一个序列(元组,列表等),但使用常规列表.

In [51]: oneD = np.array([1, 2, 3,])

In [52]: oneD.shape

Out[52]: (3,)

对于2D数组,它是列表列表,但也可以是列表元组或元组元组等:

In [53]: twoD = np.array([[1, 2, 3], [4, 5, 6]])

In [54]: twoD.shape

Out[54]: (2, 3)

对于3D数组,它是列表列表的列表:

In [55]: threeD = np.array([[[1, 2, 3], [2, 3, 4]], [[5, 6, 7], [6, 7, 8]]])

In [56]: threeD.shape

Out[56]: (2, 2, 3)

附:在内部,ndarray存储在内存块中,如下图所示. (来源:Enthought)

EeBUb.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值