首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在scipy中指定pdist的缺失值

在scipy中指定pdist的缺失值
EN

Stack Overflow用户
提问于 2012-08-10 05:50:59
回答 1查看 1.6K关注 0票数 1

在scipy中调用pdist时,如何指定缺少的值?即这里描述的函数:

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

例如,如果您有:

代码语言:javascript
复制
pdist(X, "euclidean")

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-10 06:41:14

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

代码语言:javascript
复制
import numpy as np
X = np.random.rand(10, 2)

假设您想要从计算中排除X7:

代码语言:javascript
复制
X[7] = np.nan
my_dist = pdist(X, "euclidean")

然后,您将看到,对于涉及使用排除的元素计算距离的对,my_dist具有'nan‘。可以排除多个图元。

一个更好的想法是使用numpy掩码数组,但pdist忽略掩码数组并使用数据。但是,一旦有了输出my_dist,就可以将其转换为掩码数组,这样can就不会妨碍以后的数组操作:

代码语言:javascript
复制
my_dist = np.ma.array(my_dist, mask = ~np.isfinite(my_dist))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11892491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档