Dar*_*ick 0 python arrays numpy
我有一个numpy数组:
A = array([['id1', '1', '2', 'NaN'],
['id2', '2', '0', 'NaN']])
Run Code Online (Sandbox Code Playgroud)
我也有一个清单:
li = ['id1', 'id3', 'id6']
Run Code Online (Sandbox Code Playgroud)
我希望迭代数组和列表,并且数组的每一行中的第一个元素不在列表中,然后从数组中删除整行.
我的代码到目前为止:
from numpy import *
for row in A:
if row[0] not in li:
delete(A, row, axis = 0)
Run Code Online (Sandbox Code Playgroud)
这将返回以下错误:
ValueError: invalid literal for int() with base 10: 'NaN'
Run Code Online (Sandbox Code Playgroud)
每行中所有元素的类型都是str(),因此我不理解错误中提到的int().
有什么建议?
谢谢,S ;-)
只是生成一个新阵列是没有选择的吗?
numpy.array([x for x in A if x[0] in li])
Run Code Online (Sandbox Code Playgroud)