numpy中位操做函數和比較函數

位操做函數和比較函數

位操做函數能夠在整數或整數數組的位上進行操做數組

Key_Function

xor操做符, 當兩個操做數的符號不一致時, 結果爲負數less

位操做符:函數

^ 對應bitwise_xor函數, 當兩個元素的正負號不一致時, 返回是負數的那個數字spa

& 對二進制字節進行AND操做, 只有都是1的時候才返回1code

|blog

<< 位的左移, 數值翻倍it

>> 位的右移, 數值減半io

比較運算符:class

<  對應less函數, 這個就是小於符號import

> 大於符號

==  等於符號

Code

import numpy as np x = np.arange(-9, 9) y = -x print((x ^ y) < 0) ''' [ True True True True True True True True True False True True True True True True True True] '''

print(np.less(np.bitwise_xor(x, y), 0)) ''' [ True True True True True True True True True False True True True True True True True True] '''

print((x & (x - 1)) == 0)   # & 爲並運算, 0 1 取 1 # 在二進制數中, 2的冪數表示爲一個1後面跟一連串0的形式 # 而比2的冪數小1的數表示爲一串二進制1
''' [False False False False False False False False False True True True False True False False False True] '''

print(np.equal(np.bitwise_and(x, (x - 1)), 0)) ''' [False False False False False False False False False True True True False True False False False True] '''
 
print(x & ((1 << 2) - 1)) # 二進制數的位左移一位, 則數值翻倍 # [3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0]

''' 2的冪數減去1獲得一串1組成的二進制數,能夠做爲掩碼,與其餘數字取AND運算 至關於加了個過濾,原值爲1的仍是1,原值爲0的仍是0 這個掩碼是2位的, 那麼AND運算只針對其餘數字的後兩位進行過濾 '''

print(np.bitwise_and(x, np.left_shift(1, 2) - 1)) # [3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0]
相關文章
相關標籤/搜索