首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将不带任何值的python列表转换为带NaN值的numpy数组

将不带任何值的python列表转换为带NaN值的numpy数组
EN

Stack Overflow用户
提问于 2013-10-19 02:03:40
回答 2查看 29.3K关注 0票数 36

我正在尝试将包含数字值和None值的列表转换为numpy.array,以便用numpy.nan替换None

例如:

代码语言:javascript
复制
my_list = [3,5,6,None,6,None]

# My desired result: 
my_array = numpy.array([3,5,6,np.nan,6,np.nan]) 

天真的方法失败了:

代码语言:javascript
复制
>>> 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])

解决这个问题的最佳方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-19 02:10:39

您只需显式声明数据类型:

代码语言:javascript
复制
>>> my_list = [3, 5, 6, None, 6, None]
>>> np.array(my_list, dtype=np.float)
array([  3.,   5.,   6.,  nan,   6.,  nan])
票数 47
EN

Stack Overflow用户

发布于 2013-10-19 02:07:56

关于

代码语言:javascript
复制
my_array = np.array(map(lambda x: numpy.nan if x==None else x, my_list))
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19456239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档