У меня есть numpy массив вида:
a=
array([[ 253.59, 309.96, 5.02, -180. , -69.36, -169. ],
[ 253.59, 309.96, 5.02, -178.15, -66.1 , -169. ],
[ 253.59, 309.96, 5.02, -178.15, -66.1 , -169. ],
[ 253.59, 309.96, 5.02, -177.17, -60. , -166.65],
[ 253.59, 309.96, 5.02, -176.85, -60. , -166.65],
[ 255.82, 316.87, 31.31, -176.85, -58.78, -166.65],
[ 255.82, 316.87, 31.31, -162.37, -58.78, -165.31],
[ 255.82, 316.87, 31.31, -160.91, -58.78, -165.31],
[ 255.82, 316.87, 31.31, -160.26, -58.78, -153.87],
[ 255.82, 316.87, 31.31, -157.92, -56.88, -153.87],
[ 266.74, 322.35, 32.23, -157.92, -56.88, -150. ],
[ 266.74, 322.35, 32.23, -157.14, -56.88, -150. ],
[ 266.74, 322.35, 32.23, -156.24, -56.88, -137. ],
[ 266.74, 322.35, 32.23, -150. , -53.86, -137. ],
[ 266.74, 322.35, 32.24, -148.81, -53.86, -134.69]])
Как видите, столбцы 1,2,3 идентичны, но столбцы 4,5,6 не всегда идентичны. Я хочу иметь возможность выбирать хотя бы один экземпляр каждой строки. Выбор может быть случайным. Например, желаемый результат:
b=
array([[ 253.59, 309.96, 5.02, -177.17, -60. , -166.65],...
[255.82, 316.87, 31.31, -162.37, -58.78, -165.31],...
[ 266.74, 322.35, 32.23, -156.24, -56.88, -137. ]])
Есть ли способ добиться этого? Я пробовал np.unique, но в данном случае это не сработало. Я также пробовал выбирать, основываясь на вычислении разницы между [0] -a [1], но это все, что мне удалось, и я не уверен, что это правильный способ сделать это.
for i in range(a.shape[0]):
for j in range(i-1):
b=a[i]-a[j]
print(b)
Жду ваших предложений.
С уважением, Пранав