![](/img/trans.png)
[英]Initializing numpy masked array from Python int list with None values
[英]Convert python list with None values to numpy array with nan values
我试图将包含数值和None
值的列表转换为numpy.array
,以便将None
替换为numpy.nan
。
例如:
my_list = [3,5,6,None,6,None]
# My desired result:
my_array = numpy.array([3,5,6,np.nan,6,np.nan])
天真的方法失败了:
>>> my_list
[3, 5, 6, None, 6, None]
>>> np.array(my_list)
array([3, 5, 6, None, 6, None], dtype=object) # very limited
>>> _ * 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
>>> my_array # normal array can handle these operations
array([ 3., 5., 6., nan, 6., nan])
>>> my_array * 2
array([ 6., 10., 12., nan, 12., nan])
解决这个问题的最佳方法是什么?
您只需显式声明数据类型:
>>> my_list = [3, 5, 6, None, 6, None]
>>> np.array(my_list, dtype=np.float)
array([ 3., 5., 6., nan, 6., nan])
关于什么
my_array = np.array(map(lambda x: numpy.nan if x==None else x, my_list))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.