pandas - pandas/numpy 中的向量与 ndarray
问题描述
我知道对于 4D 向量,形状应该是 (4, 1),它实际上在 4D 空间中表示,但 ndim 是 2,对于某些 ndarray 是 4 维,它的形状应该类似于 (2, 3, 4, 5)。
那么,向量和矩阵(或数组)之间的维度概念是否不同?我试图从数学角度理解它是如何派生到熊猫编程的。
解决方案
数学对象的维数通常由该特定对象中独立参数的数量决定。例如,一个 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
.
请注意,这些不仅仅是编程的概念。我们习惯于在数学中说“二维矩阵”,但不要将其与矩阵所在的空间相混淆。
推荐阅读
- ruby-on-rails - 如何在“索引”视图上列出双重嵌套属性值?
- javascript - Fabricjs 无法获取单选按钮来设置织物对象更改
- pdf - 如何使用python或java仅从pdf中提取段落?
- html - 如何使用 shareArticle 从我们的网站分享我们在linkedin 中的帖子
- vb.net - 在 Outlook 2016 中停用的旧版 VSTO 添加
- python - 如何基于一个简单的python程序构建一个简单的移动应用程序?
- javascript - Jquery Sortable:克隆+追加到多个可能的目标
- excel - 如何在 Cognos 中过滤掉 No Data Available 单元格?
- printing - 酒保标签打印预览只显示一个标签
- scala - IOException during split java.util.concurrent.ExecutionException: java.io.FileNotFoundException when loading HFile to HBase