我有两个长度相同的列表,可以将它们转换为数组,以使用numpy.stats.pearsonr方法。现在,这些列表中的一些元素是
nan
,因此不能用于该方法。在我的情况下,最好的做法是删除那些元素,以及另一个列表中对应的元素。有没有实用的Pythonic方法来做到这一点?
例如:我有[1 2 nan 4 5 6 ]
和[1 nan 3 nan 5 6]
,最终我需要[1 5 6 ]
和[1 5 6 ]
。
(这里的数字代表位置/索引,而不是我处理的实际数字)。编辑:这里的棘手之处在于将两个没有nan
的列表/数组放入一个数组中,并且将对应于nan
的元素放入另一个数组中,反之亦然。虽然可以通过操作数组来完成,但我确信有一种明确而不过度复杂的方式以Pythonic的方式完成它。
numpy.logical_not
和numpy.logical_and
,以及numpy.isnan
。 - Bortisnan
已经返回布尔值了,所以~
和|
同样适用。 - Antti Haapala -- Слава Україні