今回は、Pythonのoct()関数を使った整数値の8進数表現に注目します。
Pythonのoct()関数を使い始める。
Pythonには、データ値を操作するためのさまざまな関数が組み込まれています。
Pythonのoct()メソッドは、整数値を8進数で表現するために使用されます。
構文は以下の通りです。
oct (number)
|
-
number
: 関数に渡すべき整数値。10進数、2進数、16進数のいずれでも可能です。
例えば、以下の様になります。
dec_num = 2
print ( "Octal representation of decimal number:" , oct (dec_num))
bin_num = 0b10
print ( "Octal representation of binary number:" , oct (bin_num))
hex_num = 0x17
print ( "Octal representation of decimal number:" , oct (hex_num))
|
結果は、以下の通りになります。
Octal representation of decimal number: 0o2
Octal representation of binary number: 0o2
Octal representation of decimal number: 0o27
|
Python oct() 関数のエラーと例外について
Python oct() 関数に float 型の値が渡された場合、 TypeError
例外が発生します。
例えば、以下の様になります。
dec_num = 2.4
print ( "Octal representation of decimal number:" , oct (dec_num))
|
結果は、以下の通りになります。
TypeError Traceback (most recent call last) <ipython - input - 3 - 75c901e342e0 > in <module>
1 dec_num = 2.4
- - - - > 2 print ( "Octal representation of decimal number:" , oct (dec_num))
TypeError: 'float' object cannot be interpreted as an integer
|
NumPyモジュールで配列の要素を8進数で表現します。
NumPyの配列やリストなどのデータ構造に含まれる要素は、NumPyの組み込み関数を使って8進数表現に変換することができます。
numpy.base_repr()関数`は、配列の各要素を要素ごとに8進数に変換するために使用されます。
構文は以下の通りです。
numpy.base_repr(number, base, padding) |
-
number
: 8進数で表現される配列の要素。 - ベース`: 変換後の値の数体系を表す値。8進数表現の場合、base = 8 とする必要がある。
-
padding
: 結果の数値の左軸に追加されるゼロの数。
例えば、以下の様になります。
import numpy as N
arr = [ 23 , 15 , 36 , 20 ]
res_arr = N.base_repr(arr[ 0 ],base = 8 )
print ( "The Octal representation of" ,arr[ 0 ], ":" ,res_arr)
|
結果は以下の通りです。
The Octal representation of 23 : 27
|
Pandasモジュールによるデータ値の8進法表現
PythonのPandasモジュールは、DataFrameの形で要素をフレーム化し、データセットに対して操作を行うために使用されます。
Python の apply(oct) function
は、データセットの整数データ値を8進数で表現するために使用されます。
構文は以下の様な感じです。
DataFrame. apply ( oct )
|
例:
import pandas as pd
dec_data = pd.DataFrame({ 'Decimal-values' :[ 20 , 32 , 7 , 23 ] })
oct_data = dec_data[ 'Decimal-values' ]. apply ( oct )
print (oct_data)
|
結果は以下の通りです。
0 0o24
1 0o40
2 0o7
3 0o27
Name: Decimal - values, dtype: object
|
まとめ
以上、Pythonのoct()関数を用いて整数値を8進数に変換する方法について説明しました。
参考文献
- Python oct() 関数 – JournalDev