MaV*_*aVe 0 python vector distance scipy sparse-matrix
我正在Python中寻找动态增长的向量,因为我事先不知道它们的长度。此外,我想计算这些稀疏向量之间的距离,最好使用 scipy.spatial.distance 中的距离函数(尽管欢迎任何其他建议)。有什么想法如何做到这一点?(最初,它不需要高效。)
预先非常感谢!
您可以使用常规 Python 列表(动态)作为向量。下面是一个简单的例子。
from scipy.spatial.distance import sqeuclidean
a = [1,2,3]
b = [0,0,0]
print sqeuclidean(a,b) # 14
Run Code Online (Sandbox Code Playgroud)
根据 aganders3 的建议,请注意,如果需要,您还可以使用 numpy 数组:
import numpy
a = numpy.array([1,2,3])
Run Code Online (Sandbox Code Playgroud)
如果你的问题的稀疏部分至关重要,我会使用 scipy - 它支持稀疏矩阵。您可以定义一个 1xn 矩阵并将其用作向量。这是可行的(参数是矩阵的大小,默认用零填充):
sqeuclidean(scipy.sparse.coo_matrix((1,3)),scipy.sparse.coo_matrix((1,3))) # 0
Run Code Online (Sandbox Code Playgroud)
稀疏矩阵有很多种,有些是基于字典的(参见评论)。您可以从列表中定义行稀疏矩阵,如下所示:
scipy.sparse.csr_matrix([1,2,3])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3957 次 |
| 最近记录: |