我有一個numpy的陣列時,楠值誤差:NumPy的 - 爲什麼試圖刪除行
A = array([['id1', '1', '2', 'NaN'],
['id2', '2', '0', 'NaN']])
我也有一個列表:
li = ['id1', 'id3', 'id6']
我想遍歷數組和過列表以及數組每行中的第一個元素不在列表中的位置,然後從數組中刪除整行。
我的代碼至今:
from numpy import *
for row in A:
if row[0] not in li:
delete(A, row, axis = 0)
這將返回以下錯誤:
ValueError: invalid literal for int() with base 10: 'NaN'
類型各行中的所有元素是STR(),所以我不明白這個提int()在錯誤中。
有什麼建議嗎?
感謝, 小號;-)
是的,比我的解決方案簡單得多! – eumiro 2010-10-06 14:19:13
我認爲原始的海報想要保留'row [0]'在'li'中的行,需要從列表理解中的條件中消除'not'。 – dtlussier 2010-10-06 15:29:33
@dtlussier:謝謝你指出我的錯誤。 :) – atomocopter 2010-10-06 21:24:01