我想从字典数据中计算距离矩阵,如下所示:
y = {"a": ndarray1, "b": ndarry2, "c": ndarry3}
每个键(“a”、“b”、“c”)的值是一个不同大小的 np.ndarry。我有一个dist()
函数可以计算y["a"]
和y["b"]
through之间的距离dist(y["a"], y["b"])
。
这样得到的距离矩阵将是:
+----------------------------------------------------------------+
| a b c |
+----------------------------------------------------------------+
| a | 0 mydist(ndarrya1, ndarray) mydist(ndarray1, ndarray3) |
| b | 0 mydist(ndarray2, ndarray3) |
| c | 0 |
+----------------------------------------------------------------+
我已经尝试scipy.spatial.distance.pdist
过pdist(y, mydist)
,但收到错误消息:
[X] = _copy_arrays_if_base_present([_convert_to_double(X)])
File "/usr/local/lib/python2.7/dist-packages/scipy/spatial/distance.py", line 113, in _convert_to_double
X = X.astype(np.double)
TypeError: float() argument must be a string or a number
谁能告诉我如何自己实现这个pdist?我想使用 pdist 结果进行进一步的层次聚类。