我正在尝试在python中的矩阵行之间计算python中的余弦距离,并提出了几个问题。所以我正在创建矩阵matr并从列表中填充它,然后对其进行重塑以进行分析:
s = []
for i in range(len(a)):
for j in range(len(b_list)):
s.append(a[i].count(b_list[j]))
matr = np.array(s)
d = matr.reshape((22, 254))
d的输出使我得到如下内容:
array([[0, 0, 0, ..., 0, 0, 0],
[2, 0, 0, ..., 1, 0, 0],
[2, 0, 0, ..., 0, 0, 0],
...,
[0, 0, 0, ..., 0, 0, 0],
[0, 0, 0, ..., 0, 0, 0],
[1, 0, 0, ..., 0, 0, 0]])
然后,我想使用scipy.spatial.distance.cosine包来计算d矩阵中从第一行到其他所有行的余弦。我该怎么做?为此应该有一些for循环吗?在矩阵和数组操作方面没有太多经验。
因此,如何在该构造中为第二个参数(d [1],d [2]等)使用for循环,而不是每次都不启动它:
from scipy.spatial.distance import cosine
x=cosine (d[0], d[6])
您可以只使用一个简单的for循环scipy.spatial.distance.cosine
:
import scipy.spatial.distance
dists = []
for row in matr:
dists.append(scipy.spatial.distance.cosine(matr[0,:], row))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句