NumPyの「arange」の使い方 – 連番や等差数列の配列を生成する
NumPyはPythonで数値計算を行うためのライブラリです。NumPyのarange関数は、連番や等差数列を要素とするndarray配列を生成します。この記事では、arangeの基本的な使い方、主要な引数、そして具体的な使用例について解説します。
arangeの基本的な使い方
arangeは、引数で指定された範囲と間隔に基づいて、等間隔の数値を生成します。
最もシンプルな例
import numpy as np # 0から4までの整数列を生成 arr = np.arange(5) print(arr)
このコードでは、0から始まり5未満の整数列を生成し、NumPy配列としてarr変数に格納しています。arangeはデフォルトで0から始まり、1ずつ増加する整数を生成します。
出力
[0 1 2 3 4]
arangeの主要な引数
arangeは以下の引数を取ります。
| 引数 | 説明 | 例 |
|---|---|---|
start |
数列の開始値を指定します。省略した場合は0になります。 | np.arange(2, 10) # 2から始まる |
stop |
数列の終了値を指定します。この値は数列に含まれません。 | np.arange(5) # 5は含まれない |
step |
数値の間隔を指定します。省略した場合は1になります。 | np.arange(0, 10, 2) # 2ずつ増加 |
dtype |
生成される配列のデータ型を指定します。省略した場合は、他の引数から型推論されます。整数、浮動小数点数、複素数など、様々なデータ型を指定可能です。 | np.arange(5, dtype=float) # float型の配列を生成 |
開始値、終了値、間隔の指定
# 2から始まり、10未満まで、2ずつ増加する数列 arr = np.arange(2, 10, 2) print(arr)
出力
[2 4 6 8]
浮動小数点数の数列
stepに小数を指定すると、浮動小数点数の数列を生成できます。
# 0から始まり、1未満まで、0.1ずつ増加する数列 arr = np.arange(0, 1, 0.1) print(arr)
出力
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
データ型の指定
dtypeでデータ型を指定できます。
arr = np.arange(5, dtype=float) print(arr)
出力
[0. 1. 2. 3. 4.]
arange使用時の注意点
浮動小数点数の誤差
stepに浮動小数点数を指定した場合、丸め誤差により、要素数が予想と異なる場合があります。
arr = np.arange(0, 1, 0.1) print(len(arr)) # 10になることを期待 print(arr)
環境にもよりますが出力は次のようになります。
10 [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
10が出力されることもあれば、丸め誤差によって、9が出力されることもあります。
arr = np.arange(0, 5, 0.5) print(len(arr)) # 10になることを期待 print(arr)
出力(例)
9 [0. 0.5 1. 1.5 2. 2.5 3. 3.5 4. ]
浮動小数点数の等差数列を扱う場合は、linspaceの使用も検討してください。
stopの値は含まれない
arangeで生成される数列には、stopで指定した値は含まれません。
arr = np.arange(1, 5) print(arr)
出力
[1 2 3 4]
linspaceとの比較
linspaceも等間隔の数列を生成する関数ですが、arangeとは引数の指定方法が異なります。
arange: 生成する数列の間隔を指定linspace: 生成する数列の要素数を指定
# 0から1までを5等分した数列を生成 arr = np.linspace(0, 1, 5) print(arr)
出力
[0. 0.25 0.5 0.75 1. ]
linspaceでは最後の値(この場合は1)が含まれます。
まとめ
NumPyのarangeは、連番や等差数列を生成するための関数です。start, stop, step引数を使うことで、柔軟に数列を生成できます。
浮動小数点数の数列を扱う場合は、丸め誤差に注意が必要です。要素数を指定して等間隔の数列を生成したい場合は、linspaceを使用を検討してください。