如何在保留结果中行的(首次出现的)顺序的同时获得数组的唯一行?
下面的代码尝试了产生单个数组的变体。
array_equal
与元素位置进行比较。
import numpy as np
unique = np.array([])
arr = np.array([[1,2,3,4,5],[3,4,5,6,7],[5,6,7,8,9],[7,8,9,0,1],[9,0,1,2,3],[1,2,3,4,5],[-8,-7,-6,-5,-4]])
u = 0
for idx, i in enumerate(arr):
if np.array_equal(unique, i) == False:
unique = np.append(unique, i, axis=None)
u += 1
print (unique)
print(u)
>>> print (unique)
[ 1. 2. 3. 4. 5. 3. 4. 5. 6. 7. 5. 6. 7. 8. 9. 7. 8. 9.
0. 1. 9. 0. 1. 2. 3. 1. 2. 3. 4. 5. -8. -7. -6. -5. -4.]
>>> print(u)
7
>>>
对于本例,预期的结果是一个具有6个唯一行的数组。
[[1,2,3,4,5],[3,4,5,6,7],[5,6,7,8,9],[7,8,9,0,1],[9,0,1,2,3],[-8,-7,-6,-5,-4]]