numpy.bitwise_count#
- numpy.bitwise_count(x, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature]) = <ufunc 'bitwise_count'>#
計算
x
絕對值中 1 位元的數量。 類似於內建的 int.bit_count 或 C++ 中的popcount
。- 參數:
- xarray_like, 無號整數
輸入陣列。
- outndarray, None,或 ndarray 和 None 的元組,選用
儲存結果的位置。如果提供,則必須具有輸入廣播到的形狀。如果未提供或為 None,則會傳回新分配的陣列。元組(僅可作為關鍵字參數)的長度必須等於輸出的數量。
- wherearray_like, 選用
此條件會廣播到輸入。在條件為 True 的位置,out 陣列將設定為 ufunc 結果。在其他位置,out 陣列將保留其原始值。請注意,如果透過預設的
out=None
建立未初始化的 out 陣列,則其中條件為 False 的位置將保持未初始化。- **kwargs
有關其他僅限關鍵字的引數,請參閱 ufunc 文件。
- 傳回值:
- yndarray
輸入中對應的 1 位元數量。 對於所有整數類型,傳回 uint8。 如果 x 是純量,則這是一個純量。
參考文獻
[2]維基百科,「漢明權重」,https://en.wikipedia.org/wiki/Hamming_weight
範例
>>> import numpy as np >>> np.bitwise_count(1023) np.uint8(10) >>> a = np.array([2**i - 1 for i in range(16)]) >>> np.bitwise_count(a) array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], dtype=uint8)