Python 3.x 在np.where中否定np.isnan
我有两个numpy数组,我想扔掉两个列表中都有nan个条目的所有条目。我该怎么做?(nan只能出现在第一个列表中) 我尝试了以下方法:Python 3.x 在np.where中否定np.isnan,python-3.x,numpy,Python 3.x,Numpy,我有两个numpy数组,我想扔掉两个列表中都有nan个条目的所有条目。我该怎么做?(nan只能出现在第一个列表中) 我尝试了以下方法: import numpy as np a = np.array([1,2,np.nan,3,4]) b = np.array([5,6,7,8,9]) 如果我这样做: b[np.where(np.isnan(a))] 这让我想起: np.array([7]) 然而,我想要 np.array([5,6,8,9]) 我尝试了几种不同的否定np的方法,其中使用
import numpy as np
a = np.array([1,2,np.nan,3,4])
b = np.array([5,6,7,8,9])
如果我这样做:
b[np.where(np.isnan(a))]
这让我想起:
np.array([7])
然而,我想要
np.array([5,6,8,9])
我尝试了几种不同的否定np的方法,其中使用了np.logical_not and~,但我没有成功地实现这一点。你需要否定
~
就在np.isnan
之前np。其中
返回条件为真的索引,并且不容易否定索引,因为否定索引在python中有特殊含义(从序列末尾提取元素):
b[~np.isnan(a)]
# array([5, 6, 8, 9])
以下工作也可以进行(虽然不是必需的):
在np.isnan之前需要否定
~
np。其中
返回条件为真的索引,并且不容易否定索引,因为否定索引在python中有特殊含义(从序列末尾提取元素):
b[~np.isnan(a)]
# array([5, 6, 8, 9])
以下工作也可以进行(虽然不是必需的):
跳过
np.where
。玩那些而不是。谢谢。这就解决了问题。什么时候需要np.where?按照文档进行操作,这里的覆盖范围要比这里的注释覆盖范围大得多。跳过np.where
。玩那些而不是。谢谢。这就解决了问题。什么时候需要np。哪里需要np?按照文档进行操作,这里的覆盖范围比这里的评论要大得多。