Pythonで連番を生成するためには、range
関数をよく使用します。例えば、以下のように使用すると、0..9の値を生成するジェネレータを返すので、リスト内包と一緒に使うことで0..9の要素を含むリストが作られます。
このような連番要素を含むndarrayを生成しようとしたときに、Pythonのrangeを使用して以下のようにすることもできます。
もっと簡単かつ高速に生成するために、NumPyには連番や等差数列の要素を含むndarrayを生成するための関数np.arange
があります。本記事では、np.arange
の使用方法を見ていきます。
等差数列
np.arange
関数の使い方の解説に入る前に、この関数によって生成される数列である等差数列について簡単におさらいしておきましょう。
等差数列は、項の間における値の差が一定である数列のことを指します。 初項はその最初の項、等差は項間の差になります。例えば初項5、等差2の等差数列は次のようになります。
np.arange
np.arange
は、連番や等差数列を生成する関数です。
同様の関数としてlinspace
がありますが、指定できる要素が異なるのとarange
は1つだけ引数を設定するだけで手軽に数列を生成できる違いがあります。
APIドキュメントは以下のようになっています。
numpy.arange([start, ]stop, [step, ]dtype = None)
params:
パラメータ名 | 型 | 概要 |
---|---|---|
start |
intまたはfloat | (省略可能)初期値0 生成する等差数列の最初の項を設定します。これを指定しないと0から始まる等差数列が生成されます。 |
stop |
intまたはfloat | 生成する等差数列の終点を指定します。 |
step |
intまたはfloat | (省略可能) 初期値1 生成される数列の1つ1つの項間における差を指定します。(公差) |
dtype |
dtype | (省略可能)初期値None 生成される数列のデータ型を指定します。これを指定しないとstartやstopで入力したデータ型がそのまま適用されます。 |
returns:
指定された等差(初期値は1)を持つ等差数列を要素とするndarrayが返されます。
arange
の引数では、第一引数で生成したい数列の初項(初期値0)、第二引数で終点、第三引数で等差(初期値1)、第四引数でデータ型を指定します。
また、第二以外は省略ができますが、第三引数である等差を指定するときは同時に第一引数である初項も設定する必要があります。
ある終点だけを指定した場合
まずは第二引数である終点だけを指定しただけの場合をみます。0からの連番を生成する際に太陽されるため、この形で使用されることが最も多くなっています。 このときは初項が0で公差が1の等差数列を要素とするndarrayが返されます。
次に初項も指定してみます。等差を指定しないので等差は相変わらず1のままです。
公差を指定する
公差を指定してみます。公差を指定する場合は初項も指定する必要があります。
公差は整数でなくても配列は生成されます。
データ型を指定した場合
最後にデータ型を指定してみます。
dtypeにデータ型を代入すればよいですが、このdtypeをint
に指定すると等差の小数点以下の部分が切り捨てられます。また、初項や終点で入れた値のデータ型には左右されなくなります。