Numpyで配列の要素をカウントする方法紹介します。
np.bincountを使います。
環境
- python 3.8.0
- numpy 1.17.3
サンプルコード
では、bincountを使うとどのような出力になるかを見てみます。
まず以下のような配列があるとします。
>>> import numpy as np
>>> arr = np.arange(5)
>>> arr
array([0, 1, 2, 3, 4])
この配列をbincountでカウントしてみると
>>> np.bincount(arr)
array([1, 1, 1, 1, 1])
0が1, 1が1, 2が1・・・というように
各indexの要素がいくつあるかを返してくれます。
例えば、以下のような0が4個, 1が1個の場合
>>> arr = np.array([0,0,0,0,1])
>>> np.bincount(arr)
array([4, 1])
以下のように2が2個, 5が1個の場合
>>> arr = np.array([2,2,5])
>>> np.bincount(arr)
array([0, 0, 2, 0, 0, 1])
ヒストグラムを作る時にとても使えると思います。
参考文献
https://numpy.org/doc/stable/reference/generated/numpy.bincount.html