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

4 投票
1 回答
2550 浏览
提问于 2025-04-17 02:58

我有一个numpy的记录数组,这个数组里有几个整数列和一些字符串列。字符串列里的数据99%都是整数,但因为有“NA”这个值,numpy把它们当成了字符串。

所以我有两个问题:

  • 我该怎么把“NA”去掉,换成0呢?

  • 我怎么把字符串列转换成整数,这样我就能得到一个有很多整数列的记录数组了?

谢谢。

1 个回答

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])

撰写回答