Python 3.x 在np.where中否定np.isnan

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的方法,其中使用

我有两个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的方法,其中使用了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?按照文档进行操作,这里的覆盖范围比这里的评论要大得多。