NumPyは、Pythonで数値計算を行うためのライブラリです。NumPyのlinspace関数を使うと、指定した区間を指定した個数で等分割した数値の配列を簡単に生成できます。この記事では、linspaceの基本的な使い方から、応用的な使い方までを解説します。
linspaceとは?
linspaceは、"linear space"の略で、線形空間を意味します。
指定された開始点と終了点の間を指定された数の要素で等間隔に分割した配列を返します。
linspaceの基本的な使い方
linspace関数は、少なくとも開始点、終了点、要素数の3つの引数を取ります。
最もシンプルな例
import numpy as np # 0から10までを5等分した配列を生成 data = np.linspace(0, 10, 5) print(data)
このコードでは、0から10までの範囲を5等分したNumPy配列を生成しています。
出力
[ 0. 2.5 5. 7.5 10. ]
主要な引数
linspace関数は、主に以下の引数を受け取ります。
| 引数 | 説明 | 例 |
|---|---|---|
start |
開始点の値 | 0 |
stop |
終了点の値 | 10 |
num |
生成する要素の数(デフォルトは50) | 5 |
endpoint |
True(デフォルト)の場合、終了点を含む。Falseの場合、終了点を含まない |
True, False |
retstep |
Trueの場合、要素間の間隔も返す |
True, False |
dtype |
出力配列のデータ型 | int, float |
終了点を含まない配列の生成
endpoint引数をFalseに設定することで、終了点を含まない配列を生成できます。
# 0から10までを5等分した配列を生成(10は含まない) data = np.linspace(0, 10, 5, endpoint=False) print(data)
出力
[0. 2. 4. 6. 8.]
間隔の取得
retstep引数をTrueに設定すると、生成された配列と要素間の間隔(ステップサイズ)をタプルで返します。
# 0から10までを5等分した配列と間隔を取得 data, step = np.linspace(0, 10, 5, retstep=True) print("配列:", data) print("間隔:", step)
出力
配列: [ 0. 2.5 5. 7.5 10. ] 間隔: 2.5
データ型の指定
dtype引数で、出力配列のデータ型を指定できます。デフォルトはfloat64です。
# 0から10までを5等分した整数配列を生成 data = np.linspace(0, 10, 5, dtype=int) print(data)
出力
[ 0 2 5 7 10]
linspaceの応用例
グラフの描画
linspaceは、グラフのx軸の値を生成する際によく使われます。
import matplotlib.pyplot as plt # -5から5までを100等分した配列を生成 x = np.linspace(-5, 5, 100) y = x**2 # xの2乗を計算 plt.plot(x, y) plt.xlabel("x") plt.ylabel("y = x^2") plt.title("Parabola") plt.grid(True) plt.show()
このコードは、-5から5までの範囲を100等分したx値に対して、y = x^2のグラフ(放物線)を描画します。
まとめ
NumPyのlinspace関数は、指定した範囲を等間隔に分割した配列を生成するためのシンプルで扱いやすい関数です。グラフの描画、数値シミュレーション、データ分析など、様々な場面で活用できます。