jte*_*ace 12 python performance numpy vectorization
我有(N,3)
一系列numpy值:
>>> vals = numpy.array([[1,2,3],[4,5,6],[7,8,7],[0,4,5],[2,2,1],[0,0,0],[5,4,3]])
>>> vals
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 7],
[0, 4, 5],
[2, 2, 1],
[0, 0, 0],
[5, 4, 3]])
Run Code Online (Sandbox Code Playgroud)
我想从数组中删除具有重复值的行.例如,上面数组的结果应该是:
>>> duplicates_removed
array([[1, 2, 3],
[4, 5, 6],
[0, 4, 5],
[5, 4, 3]])
Run Code Online (Sandbox Code Playgroud)
我不知道如何在没有循环的情况下有效地使用numpy(数组可能非常大).谁知道我怎么能这样做?
Ben*_*min 10
这是一个选项:
import numpy
vals = numpy.array([[1,2,3],[4,5,6],[7,8,7],[0,4,5],[2,2,1],[0,0,0],[5,4,3]])
a = (vals[:,0] == vals[:,1]) | (vals[:,1] == vals[:,2]) | (vals[:,0] == vals[:,2])
vals = numpy.delete(vals, numpy.where(a), axis=0)
Run Code Online (Sandbox Code Playgroud)