gpt4 book ai didi

python - 选择值为 np.nonzero() 和 ~np.isnan() 的索引

转载 作者:行者123 更新时间:2023-12-05 06:16:53 24 4
gpt4 key购买 nike

我只想选择那些值不同于“Nan”和 0 的索引

创建数据框

df = pd.DataFrame({'A':[np.nan,3,0,2],
'B':[0,1,1,2]})

df = np.asarray(df)

不幸的是下面的代码不起作用

df[np.nonzero(df) & ~np.isnan(df)]

预期结果

array(3,1,1,2,2)

有人知道这是怎么回事吗?

最佳答案

通过 numpy.ravel 将值转换为一维数组然后对于非 0 值通过 != 0 进行比较:

a = np.ravel(df.to_numpy())
a = a[(a != 0) & ~np.isnan(a)]
print (a)
[3. 1. 1. 2. 2.]

就像提到的@sammywemmy,谢谢,这里np.ravel不是必需的:

a = df.to_numpy()
a = a[(a != 0) & ~np.isnan(a)]
print (a)
[3. 1. 1. 2. 2.]

您无法通过 numpy.nonzero 进行比较,因为它返回索引而不是掩码:

Return the indices of the elements that are non-zero.

关于python - 选择值为 np.nonzero() 和 ~np.isnan() 的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61913733/

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