有没有一种区分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/