我想在Python中读取一维numpy数组并生成另外两个numpy数组:
例如:
a = numpy.array([1,2,numpy.nan,4])
会给出
[1,2,0,4]
[1,1,0,1]
在python中执行此操作的最有效方法是什么?
由于
答案 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.isnan
将nan
转换为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