numpy.right_shift#
- numpy.right_shift(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature]) = <ufunc 'right_shift'>#
將整數的位元向右位移。
位元向右位移 x2 位。由於數字的內部表示法為二進位格式,此運算等同於將 x1 除以
2**x2
。- 參數:
- x1array_like, int
輸入值。
- x2array_like, int
要從 x1 右側移除的位元數。如果
x1.shape != x2.shape
,它們必須可廣播為通用形狀(這會變成輸出的形狀)。- outndarray, None, 或 ndarray 和 None 的 tuple, optional
結果儲存的位置。如果提供,則必須具有輸入廣播到的形狀。如果未提供或為 None,則會傳回新配置的陣列。tuple(可能僅作為關鍵字引數)的長度必須等於輸出的數量。
- wherearray_like, optional
此條件會廣播到輸入。在條件為 True 的位置,out 陣列將設定為 ufunc 結果。在其他位置,out 陣列將保留其原始值。請注意,如果透過預設
out=None
建立未初始化的 out 陣列,則其中條件為 False 的位置將保持未初始化。- **kwargs
對於其他僅限關鍵字的引數,請參閱 ufunc 文件。
- 傳回:
- outndarray, int
傳回位元向右位移 x2 次的 x1。如果 x1 和 x2 都是純量,則這會是純量。
另請參閱
left_shift
將整數的位元向左位移。
binary_repr
以字串形式傳回輸入數字的二進位表示法。
範例
>>> import numpy as np >>> np.binary_repr(10) '1010' >>> np.right_shift(10, 1) 5 >>> np.binary_repr(5) '101'
>>> np.right_shift(10, [1,2,3]) array([5, 2, 1])
運算子
>>
可以用作np.right_shift
在 ndarray 上的簡寫。>>> x1 = 10 >>> x2 = np.array([1,2,3]) >>> x1 >> x2 array([5, 2, 1])