Pythonのoct関数を使って整数(10進数)を8進数に変換する方法

スポンサーリンク

今回は、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
タイトルとURLをコピーしました