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<代码>,除了第一个,或者最后一个,我会去。在我的作业中。这不是很清楚,所以我想它是开放的。我只需要找到发生的事情,只保留一行。。。