import numpy as np
我有两个阵列:
a = np.array([1,2,3,np.nan,5])
b = np.array([3,2,np.nan,5,4])
我想比较一下这两个阵列中的元素&;得到一个布尔值列表作为结果。当比较中涉及nan
时,我想得到nan
。预期结果:
[False, False, nan, nan, True]
我使用if-else involving list comprehension实现了所需的输出:
[eacha>eachb
if ~np.isnan(eacha) and ~np.isnan(eachb)
else np.nan
for eacha, eachb in zip(a,b)]
有没有更好的方法(即不涉及for循环,if-else语句)来实现这一点
您可以尝试:
但是你会得到一个浮点数组,因为
np.nan
是浮点数组:要将Quang Hoang的excellent answer输出从浮点更改为布尔,我们可以使用pandas.Series.replace:
导致:
或:
导致:
相关问题 更多 >
编程相关推荐