numpy.logspaceでログスケールに均等な配列を生成する

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 とほぼ同じ。

以上。

参考URL