numpy 1D数组到numpy数组

时间:2013-10-24 13:10:07

标签: python arrays numpy

我想在Python中读取一维numpy数组并生成另外两个numpy数组:

  • 第一个是输入,如果没有' nan'值。否则,输入' nan'值被' 0'
  • 取代
  • 第二个是面具,1 ='输入值不是''' 0' ='输入值是nan& #39;'

例如:

a = numpy.array([1,2,numpy.nan,4])

会给出

[1,2,0,4]
[1,1,0,1]

在python中执行此操作的最有效方法是什么?

由于

3 个答案:

答案 0 :(得分:1)

要将nan替换为0,请使用numpy.nan_to_num

>>> a = numpy.array([1,2,numpy.nan,4])
>>> numpy.nan_to_num(a)
array([ 1.,  2.,  0.,  4.])

使用numpy.isnannan转换为True,将非纳数转换为False。然后从1中减去它们。

>>> numpy.isnan(a)
array([False, False,  True, False], dtype=bool)
>>> 1 - numpy.isnan(a)
array([ 1.,  1.,  0.,  1.])

答案 1 :(得分:0)

第一个:

numpy.nan_to_num(a)
第二个:

numpy.invert(numpy.isnan(a)).astype(int)

答案 2 :(得分:0)

要将NaNs转换为零,请使用:

numpy.nan_to_num(a)

要为非NaN设置1,为NaN设置0,请尝试:

numpy.isfinite(a)*1