Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python NumPyのiinfo()メソッドでint型のマシン制限情報を取得する方法

Python NumPyでは、numpy.iinfo()メソッドを使うことで、整数型が扱える値の範囲(マシン制限情報)を簡単に取得できます。第1引数にはint_type、つまり情報を取得したい整数データ型を指定します。この記事では、int16・int32・int64などの整数型に対して、実際にインスタンスを作成しながら最小値と最大値を確認する方法を解説します。

numpy.iinfo()とは

numpy.iinfo()は、指定した整数データ型に関するマシンレベルの制限情報を保持するオブジェクトを返す関数です。主な属性として以下のようなものがあります。

  • min: 指定したdtypeが表現できる最小値
  • max: 指定したdtypeが表現できる最大値
  • bits: データ型のビット数
  • dtype: 対象となるデータ型そのもの

なお、浮動小数点型の情報を取得したい場合は、代わりにnumpy.finfo()を使用します。

実行手順

1. 必要なライブラリをインポートする

まず、NumPyをインポートします。

import numpy as np

2. int16型の制限情報を確認する

iinfo()にnp.int16(20)のようなインスタンスを渡して、最小値と最大値を取得します。

a = np.iinfo(np.int16(20))
print("Minimum of int16 type...\n", a.min)
print("Maximum of int16 type...\n", a.max)

3. int32型の制限情報を確認する

同様に、int32型でも確認してみましょう。

b = np.iinfo(np.int32(30))
print("\nMinimum of int32 type...\n", b.min)
print("Maximum of int32 type...\n", b.max)

4. int64型の制限情報を確認する

最後に、より大きな範囲を持つint64型をチェックします。

c = np.iinfo(np.int64(50))
print("\nMinimum of int64 type...\n", c.min)
print("Maximum of int64 type...\n", c.max)

完全なサンプルコード

ここまでの手順をまとめたコード例がこちらです。

import numpy as np

# 整数型のマシン制限情報を取得するには numpy.iinfo() を使用する
# 第1引数は int_type(情報を取得したい整数データ型)

# int16型をインスタンスで確認
# min は指定した dtype の最小値、max は最大値
a = np.iinfo(np.int16(20))
print("Minimum of int16 type...\n", a.min)
print("Maximum of int16 type...\n", a.max)

# int32型をインスタンスで確認
b = np.iinfo(np.int32(30))
print("\nMinimum of int32 type...\n", b.min)
print("Maximum of int32 type...\n", b.max)

# int64型をインスタンスで確認
c = np.iinfo(np.int64(50))
print("\nMinimum of int64 type...\n", c.min)
print("Maximum of int64 type...\n", c.max)

実行結果

上記のコードを実行すると、各整数型の最小値と最大値が次のように表示されます。

Minimum of int16 type...
-32768
Maximum of int16 type...
32767

Minimum of int32 type...
-2147483648
Maximum of int32 type...
2147483647

Minimum of int64 type...
-9223372036854775808
Maximum of int64 type...
9223372036854775807

まとめ

numpy.iinfo()を使えば、int16なら-32768〜32767、int32なら約±21億、int64なら約±922京というように、各整数型が表現できる値の範囲をひと目で把握できます。数値計算でオーバーフローを避けたい場合や、適切なデータ型を選択したい場合に非常に便利な機能なので、ぜひ活用してみてください。

  1. Pythonで先週の水曜日の日付オブジェクトを取得する方法

    Pythonでは、簡単な日付計算を行うことで、先週の水曜日にあたる日付オブジェクトを取得できます。今日が何曜日であっても、weekday()メソッドの値から2(水曜日を表す数値)を引き、その結果を7で割った余りを求めれば、先週の水曜日までの日数が分かります。Pythonでは、月曜日が0、火曜日が1、水曜日が2というように、曜日に対応する数値が0〜6で返されます。この性質を利用することで、どの曜日が基準になっても正しく先週の水曜日を算出できます。コード例from datetime import date from datetime import timedelta today = date.t

  2. Pythonで文字列を右寄せしてスペースで埋める方法(rjust()メソッドの使い方)

    Pythonのrjust()メソッドとはPythonで文字列を右寄せにし、左側をスペースで埋めた(パディングした)文字列を取得したい場合は、文字列オブジェクトのrjust()メソッドを使用します。このメソッドは、パディング後の全体の文字列長がwidth引数と等しくなるように、元の文字列を右寄せした新しい文字列を返します。パディングに使用する文字はfillchar引数で指定でき、デフォルトは半角スペースです。また、widthが元の文字列の長さ(len(s))より小さい場合、パディングは一切行われず、元の文字列がそのまま返される点に注意してください。基本的な使用例>>> 15.r