NumPyのビット演算のやり方を解説していく

スポンサーリンク

今回は、知っておきたいNumPyのビット演算を5つご紹介します。

では、さっそく始めましょう

まず始めに、Bitwise演算子は、関数の中にある抽象化された層を通して、ビットレベルの演算、つまりビットごとの演算を行うのに役立ちます。

このトピックでは、以下のトピックを取り上げる予定です。

  1. AND演算
  2. OR演算
  3. XOR演算
  4. 反転演算
  5. 整数から2進数への変換

さあ、始めよう


スポンサーリンク

1. NumPyのビット演算 – AND

NumPyのビット演算子ANDは、入力値の配列に対してビット単位のAND演算を行うことができます。

つまり、入力された整数値のバイナリ表現全体に対してAND演算を行うのです。

構文は以下の通りです。

numpy.bitwise_and(num1,num2)

例えば、以下の様になります。

以下の例では、bitwise_and() 関数は、整数値 2 と 3 を同等のバイナリ値、すなわち 2 ~ 010 と 3 ~ 011 に変換します。

さらに、AND 演算を行い、等価ビットが両方とも 1 の場合は結果のビットとして 1 を返し、それ以外の場合は 0 を返します。

import numpy as np
x = 2
y = 3
  
print ("x=",x)
print ("y=",y)
res_and = np.bitwise_and(x, y)
print ("Bitwise AND result: ", res_and)

出力。

x= 2
y= 3
Bitwise AND result:  2

2. ビット単位のOR演算

AND演算と同様に、NumPyには numpy.bitwise_or() 関数 があり、データ値に対してNumPyのビット単位の演算「OR」を実行することができるようになっています。

構文は以下の通りです。

numpy.bitwise_or(num1,num2)

例えば、以下の様になります。

この例では、bitwise_or()関数が2つの整数の値に対してOR演算を行います。

OR演算では、ビットが同じ0/0であれば0を、そうでなければ1を返します。

import numpy as np
x = 2
y = 3
  
print ("x=",x)
print ("y=",y)
res_or = np.bitwise_or(x, y)
print ("Bitwise OR result: ", res_or)

を結果を出力すると、以下の様になります。

x= 2
y= 3
Bitwise OR result:  3

3. ビットごとの XOR 演算

XOR演算はNumPyのビット演算の1つです。

この演算はnumpy.bitwise_xor()関数を用いて行うことができます。

これにより、使用するビット単位のデータに対して、ビット単位のXOR演算を簡単に実行することができます

例えば、以下の様になります。

import numpy as np
x = 2
y = 3
  
print ("x=",x)
print ("y=",y)
res_xor = np.bitwise_xor(x, y)
print ("Bitwise XOR result: ", res_xor)

結果は以下の通りです。

x= 2
y= 3
Bitwise XOR result:  1

4. ビット単位の反転演算

ビットごとの反転演算はnumpy.invert()関数を用いて行います。

これは、内部でバイナリ表現形式として処理されているデータビットに対して、ビット単位のNOT演算を行うことを意味します。

符号付き整数の場合、2の補数値が返されます。

例えば、以下の様になります。

import numpy as np
x = 2
y = 3
  
print ("x=",x)
res = np.invert(x)
print ("Bitwise Invert operation result: ", res)

結果は以下の通りです。

x= 2
Bitwise Invert operation result:  -3

5. バイナリ表現

NumPyモジュールを使って、整数値を明示的に2進数に変換することができます

binary_repr()`関数を使用すると、簡単に整数値を2進数に変換することができます

構文は以下の通りです。

numpy.binary_repr()

例えば、以下の様になります。

import numpy as np
x = 7
  
print ("x=",x)
res = np.binary_repr(x)
print ("Bitwise representation of x: ", res)

結果は以下の通りです。

この例では、int 値 ‘7’ を同等の 2 進表現に変換しています。

x= 7
Bitwise representation of x:  111

まとめ

ここまでで、このトピックは終了です。

何か疑問があれば、お気軽にコメントください。

Pythonプログラミングに関連するこのような記事のために、私たちにご期待ください。

タイトルとURLをコピーしました