我有一个非常大的2D数组,我需要对其唯一的组合进行过滤,因此numpy.unnique
之类的东西不起作用。出于性能原因,我需要使用numpy
解决方案。
>>> a # I have this
array([[ 0, 0, 0, 0, 31, 39],
[ 0, 0, 0, 0, 32, 38],
[ 0, 0, 0, 0, 33, 37],
...,
[39, 30, 0, 1, 0, 0],
[39, 30, 1, 0, 0, 0],
[39, 31, 0, 0, 0, 0]])
>>> a # I something like this
array([[ 0, 0, 0, 0, 31, 39],
[ 0, 0, 0, 0, 32, 38],
[ 0, 0, 0, 0, 33, 37],
...,
[39, 30, 0, 1, 0, 0],
[39, 30, 1, 0, 0, 0]])
请注意,元素的顺序无关紧要;
答案 0 :(得分:0)
事实上,我确实相信np.unique(a, axis=0)
在对每一行中的元素进行排序之后可以满足您的要求。因此:
a.sort(axis=1)
result = np.unique(a, axis=0)
答案 1 :(得分:0)
尝试一下:
import numpy as np
res = np.unique(a, axis=0)