numpy记录数组中列的数据类型转换

时间:2011-09-24 00:26:15

标签: python arrays numpy matplotlib record

我有一个numpy recarray,有几个整数列和一些字符串列。字符串列中的数据由99%的整数组成,但是它是一个字符串,因为“NA”在列中。

所以我有两个问题:

  • 如何删除NA并将其更改为0?

  • 如何将字符串列转换为整数,以便我可以拥有一个包含许多整数列的记录数组?

感谢。

1 个答案:

答案 0 :(得分:3)

使用whereastype

>>> x = np.array([123, 456, "789", "NA", "0", 0])
>>> x 
array(['123', '456', '789', 'NA', '0', '0'], dtype='|S8')
>>> np.where(x != 'NA', x, 0).astype(int)
array([123, 456, 789,   0,   0,   0])