
numpy.logspaceでログスケールに均等な配列を生成する
numpy.logspace
を使用すると、指定範囲内でログスケールに均等な配置の配列を生成できます。numpy.linspace
では線形に配置されますが、これのログ版の関数に当たります。
numpy.logspace
は、範囲と個数を指定してndarrayを生成します。生成される配列の各要素は、ログスケールに増減します。
つまるところ指数関数の生成する値を配列として生成します。
numpy.logspace関数の使い方
基本的には、引数で生成される値の範囲の「開始点」「終了点」、それから生成される要素数を指定します。更に基数を指定することも可能です。
以下の例では 2^1 ~ 2^10 までを値に持つ配列を生成しています。
import numpy as np
a = np.logspace(1, 10, 10, base=2)
print(a)
# [ 2. 4. 8. 16. 32. 64. 128. 256. 512. 1024.]
上記コードは、次のコードとほぼ等価です。つまり、baseのX乗が生成されます。
import numpy as np
a = np.linspace(1, 10, 10) # [1 .. 10]
base = 2
result = base ** a # baseのa乗
print(result)
# [ 2. 4. 8. 16. 32. 64. 128. 256. 512. 1024.]
次にさまざまなパラメータの指定の仕方をまとめます。
numpy.logspace関数のパラメータ
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)[source]
パラメータ | 型 | 説明 |
---|---|---|
start | float | base ** start が生成される配列の最初の値となります。 |
stop | float | base ** stop が生成される値の終点をとなります。endpointにFalseが設定されている場合はこの値を含まなくなります。 |
num | int | 省略可能。デフォルト50。生成する配列(ndarray)の要素数を指定します。 |
endpoint | bool | 省略可能。デフォルトTrue。Trueの場合、stopが最後の値となります。Falseの場合、stopの値が配列に含まれません。 |
base | float | 省略可能。デフォルト10.0。基数(底)を指定します。 |
dtype | dtype | 省略可能。出力配列の型を指定します。省略他の入力引数からデータ型を推論します。※基本的には float64 になるみたいです。 |
生成される配列の値は、base start から base stop までの値となります。各値はログのスケールで間隔が開きます。
指定したパラメータを使い、linspace で生成される値を base(底) の指数とした値が各要素の値となります。
まとめ
- 指数関数や等比数列のような配列を生成する場合に、
numpy.logspace
を使用する。 - 各パラメータの指定方法は
numpy.linspace
とほぼ同じ。
以上。