我有两个单独的列表如下。
list1 =[[0.0, 0.75, 0.2], [0.0, 0.5, 0.7]]
list2 =[[0.9, 0.0, 0.8], [0.0, 0.0, 0.8], [1.0, 0.0, 0.0]]
我想得到一个list1 x list2 jaccard距离矩阵(即矩阵包含6个值:2 x 3)
For example;
[0.0, 0.75, 0.2] in list1 with all the three lists in list2
[0.0, 0.5, 0.7] in list1 with all the three lists in list2
我实际上尝试了pdist
和cdist
。但是我分别得到以下错误; TypeError: pdist() got multiple values for argument 'metric'
和ValueError: XA must be a 2-dimensional array.
。
请帮我解决这个问题。
答案 0 :(得分:1)
您需要将m x n
2D数组传递给pdist。要构造它,您可以使用简单的嵌套循环。
你可能会做这样的事情:
import scipy.spatial.distance as dist
list1 =[[0.0, 0.75, 0.2], [0.0, 0.5, 0.7]]
list2 =[[0.9, 0.0, 0.8], [0.0, 0.0, 0.8], [1.0, 0.0, 0.0]]
distance = []
for elem1 in list1:
for elem2 in list2:
distance.append(dist.pdist([elem1,elem2], 'jaccard'))
您可以在distance
数组中获得结果。