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