[英]How to visualize/connect vectors, matrices and representations in Python and numpy arrays?
我无法将标量、向量和矩阵可视化为它们在数学/物理 class 中的编写方式,以及它们在普通 Python 和numpy
中的表示方式,而不是它们对应的尺寸和形状。
5
>>> b = np.array(5)
>>> np.ndim(b)
0
我有 0 维5
但这里的axes
是什么? 有ndim
和shape
的功能,但没有轴。
我们说我们在物理/数学 class 中有 2 个维度,因为它代表一个 2D 向量,但看起来numpy
使用了不同的概念。
为什么ndim
给出1
而shape
给出了尺寸?
>>> c = np.array([1,-3])
>>> c
array([ 1, -3])
>>> c.ndim
1
>>> c.shape
(2,)
np.ndim
给出1
呢?
我已经查看了有关轴的本教程,但无法了解轴如何在此处应用。
您将如何在 Python 和numpy
中表示上述向量? 这是 Python 中的[1, -3]
还是[[1], [-3]]
? 在numpy
怎么样? 会是np.array([1, -3])
还是np.array([[1], [-3]])
? 为了我的眼睛,我倾向于写成
np.array([
[1],
[-3]
])
numpy
中表示? 文档指出我们需要使用np.array
来代替。不再推荐使用这个 class,即使是线性代数。 而是使用常规 arrays。 class 将来可能会被移除。
标量不是数组,因此它的维数为 0。
np.array([1,-3])
是一维数组,因此c.shape
返回一个元组,其中只有一个元素(2,)
,只是第一个维度,它告诉您其中只有 1 个维度和 2 个元素方面。
你是正确的np.array([[1], [-3]])
是你在 2 中的向量。 c.shape
给出(2,1)
意味着有 2 行和 1 列。 c.ndim
给出2
,因为有 2 个维度 x 和 y。 这是一个二维/平面阵列
对于 3.,您可以将其创建为np.array([[1,2,3], [4,5,6], [7,8,9]])
。 shape
返回(3,3)
表示 3 行和 3 列。 ndim
返回 2 因为它仍然是 2D/平面数组。
一个ndarray
有一个shape
,一个元组。 ndim
是该元组的长度,可能为 0。数组具有ndim
轴(有时称为维度)。
np.array(5)
具有形状()
, 0 ndim
并且没有轴。
np.array([1,2,3,4])
具有 (4,) 形状和 1 个轴。 它可以重新整形为 (4,1) 或 (1,4) 或 (2,2) 甚至 (2,1,2) 或 (1,4,1)。
你A
可以用
A = np.arange(1,10).reshape(3,3)
这是一个 9 元素的一维数组,重新整形为 (3,3)
numpy
arrays 有一个打印显示,带有[]标记的尺寸嵌套。 A.tolist()
生成一个包含 3 个元素的列表,每个元素都是一个 3 元素列表。
行、列、平面是谈论 arrays 的有用方式,但不是它们定义的正式部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.