概要
numpy で等間隔な連続した値をもつ1次元配列を作成する arange、linspace、logspace、geospace について解説します。
numpy.arange
指定区間 で値同士の間隔が step
である1次元配列を作成します。
引数
名前 | 型 | デフォルト値 |
---|---|---|
start | number | |
区間の開始値。out にはこの値が含まれます。デフォルトの開始値は 0 です。 | ||
stop | number | |
区間の終了値。step が小数点で丸め誤差が影響する場合を除き、out にはこの値は含まれません。 | ||
step | number | |
値の間隔。デフォルトのステップサイズは1です。step が位置引数として指定された場合、start も指定しなければなりません。 | ||
dtype | dtype | None |
出力配列の型。dtypeが与えられない場合は、他の入力引数からデータ型を推測します。 |
返り値
名前 | 説明 |
---|---|
arange | 等間隔の値の1次元配列。 |
小数も指定できる点以外は range()
と同じです。end
は生成される配列に含まれないことに注意してください。
arange(e)
:[0, 1, ..., e - 1]
arange(s, e)
:[s, s + 1, ..., e - 1]
arange(s, e, step)
:[s, s + step, ...]
In [1]:
[0 1 2 3 4 5 6 7 8 9] [5 6 7 8 9] [5 7 9]
小数点も指定できます。
In [2]:
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
numpy.linspace
指定区間 から等間隔に num
個の値をサンプリングして、1次元配列を作成します。
引数
名前 | 型 | デフォルト値 |
---|---|---|
start | scalar | |
区間の開始値。 | ||
stop | scalar | |
区間の終了値。 | ||
num | int | 50 |
生成するサンプル数。デフォルトは50。非負でなければならなりません。 | ||
endpoint | bool | True |
Trueの場合、stop が最後のサンプル値になります。False の場合は、stop は含まれません。デフォルトはTrue。 | ||
retstep | bool | False |
真の場合は、(samples, step) を返します。 | ||
dtype | dtype | None |
出力配列の型。dtypeが与えられない場合は、他の入力引数からデータ型を推測します。 |
返り値
名前 | 説明 |
---|---|
samples | サンプリングした値 |
step | retstep が True の場合のみ値の間隔が返されます。 |
endpoint
の値でサンプリングの仕方が異なります。
endpoint=True
の場合: サンプリング間隔をstep = (end - start) / (num - 1)
で計算します。endpoint=False
の場合: サンプリング間隔をstep = (end - start) / num
で計算します。
In [3]:
[0. 0.25 0.5 0.75 1. ] [0. 0.2 0.4 0.6 0.8]
retstep=True
を指定すると、値の間隔も返します。
In [4]:
[0. 0.25 0.5 0.75 1. ] 0.25
numpy.logspace
対数スケールで等間隔の数値を返します。
引数
名前 | 型 | デフォルト値 |
---|---|---|
start | float | |
が区間の開始値になります。 | ||
stop | float | |
が区間の終了値になります。 | ||
num | integer | 50 |
生成するサンプル数。デフォルトは50。 | ||
endpoint | boolean | True |
Trueの場合、stop が最後のサンプル値になります。False の場合は、stop は含まれません。デフォルトはTrue。 | ||
base | float | 10.0 |
対数の底。デフォルトは 10 です。 | ||
dtype | dtype | None |
出力配列の型。dtypeが与えられない場合は、他の入力引数からデータ型を推論します。 |
返り値
名前 | 説明 |
---|---|
samples | サンプリングした値 |
指定区間 で対数スケールで等間隔となる値を num
個サンプリングして、1次元配列を作成します。デフォルト (endpoint=True
) では終了値を含みます。
まず、区間 に numpy.linspace()
と同様のやり方で等間隔に値をサンプリングし、その値で base
を冪乗して元の線形スケールに戻した値が返り値になります。
In [5]:
[ 100. 177.827941 316.22776602 562.34132519 1000. ] [ 100. 177.827941 316.22776602 562.34132519 1000. ]

endpoint
の値でサンプリングの仕方が異なります。
endpoint=True
の場合: 対数スケールのサンプリング間隔をstep = (end - start) / (num - 1)
で計算します。endpoint=False
の場合: 対数スケールのサンプリング間隔をstep = (end - start) / num
で計算します。
In [6]:
[ 100. 177.827941 316.22776602 562.34132519 1000. ] [100. 158.48931925 251.18864315 398.10717055 630.95734448]

In [7]:
[4. 4.75682846 5.65685425 6.72717132 8. ]
numpy.geomspace
対数スケールで等間隔の数値を返します。
引数
名前 | 型 | デフォルト値 |
---|---|---|
start | scalar | |
区間の開始値。 | ||
stop | scalar | |
区間の終了値。 | ||
num | integer | 50 |
生成するサンプル数。デフォルトは50。 | ||
endpoint | boolean | True |
Trueの場合、stop が最後のサンプル値になります。False の場合は、stop は含まれません。デフォルトはTrue。 | ||
dtype | dtype | None |
出力配列の型。dtypeが与えられない場合は、他の入力引数からデータ型を推測します。 |
返り値
名前 | 説明 |
---|---|
samples | サンプリングした値。 |
指定区間 で常用対数スケールで等間隔となる値を num
個サンプリングして、1次元配列を作成します。デフォルト (endpoint=True
) では終了値を含みます。
numpy.logspace()
では、底 base
と start, stop
で区間 を指定していたのに対し、numpy.geomspace()
で区間は で直接指定するようになっています。また、底は10固定です。
In [8]:
[ 100. 177.827941 316.22776602 562.34132519 1000. ] [ 100. 177.827941 316.22776602 562.34132519 1000. ]
コメント