二维向量的含义是什么?

数据挖掘 机器学习 Python 降维
2022-03-01 15:49:30

我一直听到人们说这样的话:

假设你有一个只有他年龄的人的一维向量。然后你添加另一个维度,即他的高度,所以你有一个二维向量

但我也听说过

2d 向量是 2 阶张量

有人可以澄清哪个是正确的吗?

是吗

[1, 1]

或者

[[1,1],
 [1,1]]
3个回答

“张量”是一个非常笼统的术语,意思是N 维数组张量可以是 0 维(标量)、1 维(向量)、2 维(矩阵)等等……张量是一个非常包容的术语,表示上面列出的所有内容。有时,人们使用“张量”来指代高维对象,如下所述:

虽然从技术上讲,上述所有构造都是有效的张量,但通俗地说,当我们谈到张量时,我们通常是指将矩阵概念推广到 N ≥ 3 维。那么,我们通常只会将 3 维或更多维的张量称为张量,以避免混淆 [...]

但请记住,这只是一种实践,N 维数组在技术上是一个张量。

来到你的问题,如果张量更像:

[1, 1]

或者

[[1,1],
 [1,1]]

首先,它们分别看起来像 Python 列表和列表列表。严格来说,Python 列表不是数学对象。如果您 import numpy,将它们描述为更正确:

numpy.array([ 1, 1 ])

numpy.array([[ 1, 1 ],
             [ 1, 1 ]])

现在这些对象具有向量-矩阵-张量的数学特性。我认为它们都可以被认为是不同种类和等级的张量。第一个是等级 1,另一个是等级 2。


关于张量的其他有用资源是这个问题这个解释

@Leevo 已经很好地解释了它。或者,只需询问 Pytorch:

import torch
x = torch.tensor([1, 1])
y = torch.tensor([[ 1, 1 ], [ 1, 1 ]])
print("x dimension: {}".format(x.dim()))
print("y dimension: {}".format(y.dim()))

给出:

x dimension: 1
y dimension: 2

因此,您的第一个具有一个人的年龄和身高的向量/张量(!)只有一个维度,而您的第二个向量/张量有两个维度。

在 Python 中,您可以将向量维度视为list-of-lists-of-lists-of...

所以,

  1. 列表= 1D
  2. 列表列表= 2D
  3. 列表列表列表= 3D
  4. 等等...
[1,1] # 1D

[[1,1],
 [1,1]] # 2D

[[[1,1],
  [1,1]],
 [[1,1],
  [1,1]]] # 3D

然后你提到:

然后你添加另一个维度,即他的高度,所以你有一个二维向量。

我认为这可以从两个方面来解释:

[<age>] # 1D of size 1x1


# You can add height and make it 2D
[[<age>],
 [<height>]] # 2D of size 2x1

# or, add height and keep it 1D
[<age>, <height>] # 1D of size 1x2