从numpy数组中删除重复的值

时间:2018-06-05 16:07:34

标签: numpy

我有三个numpy数组

x =np.array([1,2,3,4,2,1,2,3,3,3])
y =np.array([10,20,30,40,20,10,20,30,39,39])
z =np.array([100,200,300,400,200,100,200,300,300,300])

我想检查x [i] == x [j]和y [i] == y [j]和z [i]!= z [j]。如果这是真的,我想删除z [j]。

在伪代码中:

label: check
for i in range(0,np.size(x)):
  for j in range(0,np.size(x)):
    If x[i] == x[j] and y[i]==y[j] and z[i]!=z[j] and i<j:
      x = delete(x,j)
      y = delete(y,j)
      z = delete(z,j)
      print "start again from above"
      goto check

由于我使用goto并且我不知道其他任何方式我想问是否有任何快速和优雅的方法来执行此操作(可能基于numpy预定义函数)?

1 个答案:

答案 0 :(得分:1)

这应该这样做:

np.unique(np.array([x, y, z]), axis=1)