numpy:NaN和蒙面数组之间的差异

mat*_*use 13 python numpy nan

在numpy中有两种标记缺失值的方法:我可以使用a NaN或a masked array.我知道使用NaNs(可能)更快,而屏蔽阵列提供更多功能(哪个?).

我想我的问题是我应该/何时使用一个而不是另一个?一个用例np.NaNregular array vs. a masked array什么?

我相信答案必须在那里,但我找不到......

小智 8

差异在于两个结构所持有的数据.

使用常规数组np.nan,无效值后面没有数据.

使用蒙版数组,您可以初始化一个完整的数组,然后在其上应用一个蒙版,以便某些值显示无效.该numpy.ma模块提供方法,以便您不必处理np.nan行为(例如,np.nan == np.nan总是False等等)

如果您有一个数组,您永远不需要将值放在无效单元格中,请使用前者.您总是可以使用np.nan和一些索引技术复制复杂的操作,但这就是掩码数组的用途.