繁体   English   中英

关于numpy数组的维数问题

[英]Question about dimensionality of numpy array

我正在同时学习物理和 numpy。 Numpy 说我的 3x3 矩阵有 2 维,但在我的物理书或 3blue1brown '线性代数的本质'中,3x3 矩阵是 3-D

#a '2d' array, created using identity
i2d = np.identity(3)  

print(i2d)

print('this is a %s-D array, shape is %s with %s elements'%(i2d.ndim, i2d.shape, i2d.size))


YIELDS:

[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
this is a 2-D array, shape is (3, 3) with 9 elements

在线性代数中,这定义了一个具有 3 个垂直基向量的 3-D 空间。 任何人都知道我错过了什么。

在 numpy 中, shape属性为您提供(3,3)并表示行数和列数 - 在物理环境中,您的 3 个长度为 3 的基向量构成 3D 空间的基础。

Numpy 的 arrays 的ndim属性引用了 arrays 的“嵌套”数量。 你有一个arrays 数组- 所以你有两个维度。

一般来说,如果数组的元素本身是 arrays,那么您的维度是 2。要访问这样的数组中的任何元素,您需要 2 个索引,每个索引一个。 arr[i][j]

如果数组的元素是 arrays,并且那些 arrays 的元素也是 arrays,那么你的维度是 3,你需要 3 个索引来访问 a[jrrk arr[i][j][k]任何元素。 你有一个这样的嵌套数组结构:

[
  [ 
    [ 1, 2, 3 ],
    [ 4, 5, 6 ],
    [ 7, 8, 9 ]
  ],
  [ 
    [ 1, 0, 0 ],
    [ 0, 1, 0 ],
    [ 0, 0, 1 ]
  ],
  ...
]

在物理意义上, shape属性应该是你所关注的。

对于 3 空间、3x3 矩阵的基础。 对于 4 空间、4x4 矩阵等的基础。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM