我有两个相同长度的列表,我可以将它们转换为数组以便与numpy.stats.pearsonr方法一起玩。现在,这些列表中的一些元素是nan
,因此不能用于该方法。在我的情况下,最好的办法是删除这些元素,以及另一个列表中的相应元素。有没有一种实际的pythonic方法来做到这一点? 例如:我有在两个相同长度的数组中删除nan AND对应的元素
[1 2 nan 4 5 6 ]
和[1 nan 3 nan 5 6]
和到底我需要
[1 5 6 ]
[1 5 6 ]
(这里的数量是代表性的位置/指数的,而不是我正在处理的实际数字)。编辑:这里棘手的部分是在一个数组中有两个不带nan
的列表/数组,另一个对应于nan
s的元素,反之亦然。虽然它当然可以通过操作数组来完成,但我确信有一种明确的而不是过度复杂的方式来以pythonic的方式来完成它。
我想推荐的方法是使用numpy的布尔运算符:'numpy.logical_not'和'numpy.logical_and'以及'numpy.isnan'。 – Bort
清晰,简单,很好的解释。它的工作原理。谢谢! –
@Bort也许,但'isnan'已经返回布尔值,所以'〜'和'|'也可以。 –