numpy记录数组中列的数据类型转换
我有一个numpy的记录数组,这个数组里有几个整数列和一些字符串列。字符串列里的数据99%都是整数,但因为有“NA”这个值,numpy把它们当成了字符串。
所以我有两个问题:
我该怎么把“NA”去掉,换成0呢?
我怎么把字符串列转换成整数,这样我就能得到一个有很多整数列的记录数组了?
谢谢。
1 个回答
3
使用 where
和 astype
:
>>> 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])