Как посчитать количество одномерных массивов в двумерном массиве (Python)? - PullRequest
0 голосов
/ 09 ноября 2018

Если у меня есть двумерный массив, скажем:

a = [[1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3]]

Как мне посчитать количество экземпляров [1, 2, 3] в a? (В данном случае я ищу ответ 2)

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Если вам нужно количество всех массивов, которые вы можете использовать уникальных :

import numpy as np

a = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3]])
uniques, counts = np.unique(a, return_counts=True, axis=0)
print([(unique, count) for unique, count in zip(uniques, counts)])

выход

[(array([1, 2, 3]), 2), (array([2, 3, 4]), 1), (array([3, 4, 5]), 1)]
0 голосов
/ 09 ноября 2018

Так как вы сказали, что это массив numpy, а не список, вы можете сделать что-то вроде:

>>> a = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3]])
>>> sum((a == [1,2,3]).all(1))
2

(a == [1,2,3]).all(1) дает вам логический массив или где все значения в строке совпадают[1,2,3]: array([ True, False, False, True], dtype=bool), и сумма этого равна количеству всех True значений там

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...