繁体   English   中英

Select 索引值 np.nonzero() 和 ~np.isnan()

[英]Select indices where value np.nonzero() and ~np.isnan()

我只想 select 那些值不同于“南”和 0 的索引

创建 Dataframe

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进行比较,因为它返回索引而不是掩码:

返回非零元素的索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM