"dimensionality" numpy 数组意味着什么?



我还是scikit learn和numpy的新手。我读了教程,但我不明白它们是如何定义数组维度的。

在以下示例中:

>>> import numpy as np
>>> a = np.arange(15).reshape(3, 5)
>>> a
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
>>> a.shape
(3, 5)
>>> a.ndim
2

数组每行有五个变量,所以我希望它有5个维度。

为什么a.ndim等于2?

鉴于您正在使用scikit-learn,我将在机器学习的背景下对此进行解释,因为它可能更有意义。。。

你的特征矩阵(我认为这就是你在这里所说的)通常是二维的(因此为什么是ndim = 2),因为你有行(占据一维)和列(占据二维)

在机器学习的情况下,我通常认为行是样本,列是特征。

但是,请注意,每个维度可以有多个条目(例如,您将有多个样本/行和多个列/特征)。这条曲线会告诉你该尺寸的大小。

所以在你的情况下:

>>> a
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
>>> a.shape
(3, 5)
>>> a.ndim
2

您有一个长度/大小为3的尺寸标注。第二个维度有5个条目。例如,您可以将其视为包含3个样本和5个特征/变量的特征矩阵。

总而言之,您有2个维度(ndim = 2),但数组的特定大小由shape tuple表示,它告诉这2个维度中的每个维度有多大。

此外,(3,5,2)将是具有3个维度的矩阵,其中第3个维度具有2个值

我认为这里的关键是,至少在二维的情况下,不要把它看作嵌套的列表或嵌套的向量(当你考虑[]时,这就是它的样子),而是把它看作一个有行和列的表。当您以

的方式考虑数据结构时,shape元组和ndim将更有意义

Dimension表示有一个.shape元组的长度。ndarray的形状是(3,5),因为它有3行5列。这正是你想要找到的,不是吗?

我把Frame和Array弄错了,数组是根据如何找到数字来判断的,找到数字需要多少步,在这种情况下,你需要先找到行,然后找到行。但在Frame中,对于一个实例,该实例拥有一行,其中的所有行都描述了它的属性,或称之为变量或维度来定义实例。在Frame中,可以使用二维数组来定义多维实例。
Array
1 4 5
2 3 6
所以你需要两个步骤才能找到数字,就像你可以用[][]来定位
一样但在帧
          Length    Height    Weight
1        23           34           56
2        89           87           63
中这是一个框架,实际上是一个三维的"数组",但它不是数组。

最新更新