Рассчитать дубликат в многомерном массиве NumPy - PullRequest
0 голосов
/ 23 января 2019

Я использую Python-3.x, и я хотел бы рассчитать количество дубликатов в массиве NumPy .... например:

import numpy as np
my_array = np.array([[2, 3, 5],
                     [2, 3, 5], # duplicate of row 0 (this will be count as 1)
                     [2, 3, 5], # duplicate of row 0 (this will be count as 2)
                     [1, 0, 9], 
                     [3, 6, 6], 
                     [3, 6, 6], # duplicate of row 0 (this will be count as 3)
                     [1, 0, 9]])

То, что я хотел бы получить из выходной:количество дубликатов в этом массиве:

the number of the duplicate is 3

большинство методов возвращают значения, такие как collection.Counter или return_counts, и не возвращают то, что я хочу, если я правильно их использую.

Любой совет будет высоко ценится

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Вот небольшое отличие от ответа @Anh Ngoc.(для более старых версий numpy, где axis не поддерживается np.unique)

number_of_duplicates = len(my_array) - len(set(map(tuple, my_array)))
0 голосов
/ 23 января 2019

Вы можете получить количество дубликатов массива по длине массива - длине уникальных членов массива:

the_number_of the duplicate = len(my_array) - len(np.unique(my_array, axis=0))

И результат вашего примера 4 (также дублируется [1,0,9]).

...