1

我随机生成了一个矩阵:mtx=numpy.random.rand(100,3) 然后我尝试使用以下方法将矩阵的维数减少到 2:

from sklearn.manifold import TSNE
newMTX=TSNE(2,method='barnes_hut')

之后我想计算 的欧几里得距离矩阵newMTX,然后我做了:

from scipy.spatial import distance_matrix
dis=distance_matrix(newMTX,newMTX)

RuntimeWarning: invalid value encountered in sqrt但是我遇到了一个我无法理解原因的错误( )。任何人都可以帮助我吗?

我已经尝试过:

from sklearn.metrics.pairwise import euclidean_distances as distance_matrix
dis=distance_matrix(newMTX,newMTX)

但我遇到了同样的错误。

我搜索并找到了另一种解决方案:

    dist = lambda p1, p2: numpy.sqrt(((p1-p2)**2).sum())
    dm = numpyp.asarray([[dist(p1, p2) for p2 in newMTX] for p1 in newMTX])

但我不确定计算大矩阵的距离矩阵是否是一种有效的解决方案,例如 1000000*2 矩阵?

我想要实现的是 100*2 矩阵的 100*100 欧式距离矩阵newMTX

任何帮助将不胜感激!

4

0 回答 0