首页 > 解决方案 > pandas/numpy 中的向量与 ndarray

问题描述

我知道对于 4D 向量,形状应该是 (4, 1),它实际上在 4D 空间中表示,但 ndim 是 2,对于某些 ndarray 是 4 维,它的形状应该类似于 (2, 3, 4, 5)。

那么,向量和矩阵(或数组)之间的维度概念是否不同?我试图从数学角度理解它是如何派生到熊猫编程的。

标签: pandasnumpymathnumpy-ndarray

解决方案


数学对象的维数通常由该特定对象中独立参数的数量决定。例如,一个 4维向量在数学上是 4 维的,因为它包含 4 个独立元素(除非已指定它们之间的某种关系)。这样的向量,如果表示为 中的列向量numpy,将具有形状(4, 1),因为它有 4 行和 1 列。这个向量的转置,一个行向量,有形状(4, ),因为它有 4 列只有 1 行,并且行样式视图是默认的,所以如果有 1 行,则没有明确提及。
但是请注意,列向量和行向量在维度上是等价的数学上。两者都有 4 个维度。对于3 x 3矩阵,最一般的数学维度是9,因为它通常有 9 个独立元素。相应numpy数组的形状为(3, 3)。如果您正在寻找任何numpy数组中的最大元素数,ndarray.size那么就是要走的路。

ndarray.ndim但是,会产生numpy 数组中的轴数。也就是说,放置值的方向数(草率的术语!)。所以对于3 x 3矩阵,ndim产生2对于形状为(3, 7, 2, 1)的数组,ndim将产生 4。但是,正如我们已经讨论过的,数学维度通常是3 x 7 x 2 x 1 = 42(所以这是一个 42-维空间!但numpy数组只有 4 维)。因此,正如您可能已经注意到ndarray.size的那样,它只是ndarray.shape.

请注意,这些不仅仅是编程的概念。我们习惯于在数学中说“二维矩阵”,但不要将其与矩阵所在的空间相混淆。


推荐阅读