gpt4 book ai didi

python - 在 scipy 中指定 pdist 的缺失值

转载 作者:行者123 更新时间:2023-12-01 05:57:12 25 4
gpt4 key购买 nike

在 scipy 中调用 pdist 时如何指定缺失值?即此处描述的功能:

http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.pdist.html

例如,如果您有:

pdist(X, "euclidean")

但是 X 可能包含缺失值,例如字符串 "NA",并且您希望在 X 之间的成对比较中排除这些值列。我正在寻找的行为是在获取 X 中任何一对列之间的欧氏距离时不考虑缺失值。

最佳答案

最好的方法是用 np.nan 填充 X 数组以排除要排除的点。例如,假设具有 X a (10,2) 数组的 2D 情况:

import numpy as np
X = np.random.rand(10, 2)

假设您要从计算中排除 X[7]:

X[7] = np.nan
my_dist = pdist(X, "euclidean")

然后,您将看到 my_dist 对于涉及计算与排除元素的距离的对具有“nan”。您可以排除多个元素。

更好的想法是使用 numpy 屏蔽数组,但 pdist 会忽略屏蔽数组并使用数据。但是,一旦获得输出 my_dist,您可以将其转换为掩码数组,这样 nan 就不会妨碍将来的数组操作:

my_dist = np.ma.array(my_dist, mask = ~np.isfinite(my_dist))

关于python - 在 scipy 中指定 pdist 的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11892491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com