3
我有一个numpy recarray,有几个整数列和一些字符串列。字符串列中的数据由99%的整数组成,但是它们是字符串,因为列中有“NA”。numpy记录数组中列的数据类型转换
所以我有两个问题:
如何删除NA的,并更改为0?
我怎样才能将字符串列转换为整数,以便我可以有一个包含许多整数列的记录数组?
谢谢。
我有一个numpy recarray,有几个整数列和一些字符串列。字符串列中的数据由99%的整数组成,但是它们是字符串,因为列中有“NA”。numpy记录数组中列的数据类型转换
所以我有两个问题:
如何删除NA的,并更改为0?
我怎样才能将字符串列转换为整数,以便我可以有一个包含许多整数列的记录数组?
谢谢。
使用where
和astype
:
>x = numpy.array([123, 456, "789", "NA", "0", 0])
>x
array(['123', '456', '789', 'NA', '0', '0'], dtype='|S8')
>where(x != 'NA', x, 0).astype(int)
array([123, 456, 789, 0, 0, 0])
这适用于第二阵列很大,但我如何保持我使用记录阵列的“REC” -ness? Sry,之前我没有说清楚我使用的是rec阵列 – Rishi
您可以使用['matplotlib.mlib'](http:// matplotlib)中的'rec_append_fields'帮助您将新列添加到rec数组中。 sourceforge.net/api/mlab_api.html)(请参阅“Record array helper函数”一节)。也许用新数据添加新列并删除旧列是最简单的,如果不是实现所需结果的唯一可能方式。 – krlmlr
这是有效的,但我希望有一个更简单的方法 – Rishi