数组对于欧几里德距离太大

2024-06-06 04:42:24 发布

您现在位置:Python中文网/ 问答频道 /正文

my_array是一个由0和1组成的78000×200稀疏矩阵;许多行都是零。我在计算欧几里得距离。此外,我使用多维缩放来获得每列的坐标(每列都是词汇表中的一个单词)。在

在计算欧几里得距离时,我得到了“数组太大”的错误。还有其他类似的问题,但我不知道如何在这种情况下应用它。我想象的是,如果我降低“dist array”的精度,它会变小,但我不知道怎么做。也可以使用稀疏矩阵或np.memmap公司,但my_array不是问题。当它试图保留所有的距离值时,问题就开始了,所以我需要在dist数组计算期间对其进行积分。dist数组是一个78000 x 78000矩阵。在

所以我的问题是,如何在欧几里德距离的计算中整合这些技术?

或者循环使用dist(x, y) = sqrt(dot(x, x) - 2 * dot(x, y) + dot(y, y))有意义吗?调整数据类型?在

from sklearn.manifold import MDS
from sklearn.metrics.pairwise import euclidean_distances

my_array = np.array(Y[2:])
dist = euclidean_distances(my_array)
mds = MDS(n_components=2, dissimilarity="precomputed", random_state=1)
pos = mds.fit_transform(dist)

Tags: fromimport距离mydistnp矩阵数组