Python:区分行向量和列向量

标签 python arrays numpy vector scipy

有没有一种区分python中行向量和列向量的好方法?到目前为止,我使用的是 numpy 和 scipy,到目前为止我看到的是,如果我要给一个向量,比如说

from numpy import *
Vector = array([1,2,3])

他们不能说天气我的意思是行或列向量。此外:

array([1,2,3]) == array([1,2,3]).transpose()
True

这在“现实世界”中是完全不真实的。 我意识到来自上述模块的向量上的大多数功能都不需要区分。例如 outer(a,b)a.dot(b) 但为了我自己的方便,我想区分一下。

最佳答案

您可以通过向数组添加另一个维度来明确区分。

>>> a = np.array([1, 2, 3])
>>> a
array([1, 2, 3])
>>> a.transpose()
array([1, 2, 3])
>>> a.dot(a.transpose())
14

现在强制它为列向量:

>>> a.shape = (3,1)
>>> a
array([[1],
       [2],
       [3]])
>>> a.transpose()
array([[1, 2, 3]])
>>> a.dot(a.transpose())
array([[1, 2, 3],
       [2, 4, 6],
       [3, 6, 9]])

当你想要区分时,另一种选择是使用 np.newaxis:

>>> a = np.array([1, 2, 3])
>>> a
array([1, 2, 3])
>>> a[:, np.newaxis]
array([[1],
       [2],
       [3]])
>>> a[np.newaxis, :]
array([[1, 2, 3]])

关于Python:区分行向量和列向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17428621/

相关文章:

python - 如何使用 Spacy 将 Rasa Bot 部署到 Heroku

python - FFT求自相关函数

python - pandas groupby 并更新一列中的值大于另一列中的值的次数总和

python - Django - 延迟创建数据库条目

arrays - 如何应用模数以使索引永远不为 0?

javascript - 将 GET 更新数据对象数组中的所有值乘以单个值

arrays - 将列表加入一个字符串

python - Numpy:检查一维数组是否是另一个数组的子数组

python - 使用大数据集进行 scikit-learn 向量化

python - 在 Python Numpy 或 Pandas 中加载 .Map 文件