Python numpy数组,如果一个字符串元素在另一行中重复,则删除行
我有这样一个数组:Python numpy数组,如果一个字符串元素在另一行中重复,则删除行,python,arrays,Python,Arrays,我有这样一个数组: vals = numpy.array([['user1','number1','grades1'], ['user1', 'number2','grade2'], ['user3', 'number3','grade3'], ['user4', 'number4','grade4']]) 我想删除一整行,其中包含user1,因为它在第一列的另一行中重复
vals = numpy.array([['user1','number1','grades1'],
['user1', 'number2','grade2'],
['user3', 'number3','grade3'],
['user4', 'number4','grade4']])
我想删除一整行,其中包含user1
,因为它在第一列的另一行中重复(可能是哪一行并不重要)。另外,如果有更多的行显示user1
,只需保留找到的第一行即可。因此,输出可以是这样的:
array([['user1', 'number1','grade1'],
['user3', 'number3','grade3'],
['user4', 'number4','grade4']])
到目前为止,我试过:
a = (vals[0:1,0:1] == vals[1:2,0:1])
vals = numpy.delete(vals, numpy.where(a), axis=0)
但是,如何使用它来创建循环?您可以使用
numpy.unique
,它也可以返回索引
unique_user,unique_indices = numpy.unique(vals[:,0],return_index = True)
unique_vals = vals[unique_indices]
如果再次出现
user1
,那么将删除哪一行?除了最后一排,每一排都有吗?考虑在样本数据中添加这样的情况吗?如果出现更多的<代码> USER1<代码>,除了第一个,或者最后一个,我会去。在我的作业中。这不是很清楚,所以我想它是开放的。我只需要找到发生的事情,只保留一行。。。