我有一个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