等差数列(一定間隔で並べられた数字)を作るPythonの関数に、rangeがあります。
これに対応するNumPyの関数、np.arange関数を紹介します。
NumPyの関数はPythonの関数に比べて、一般的に高速であることが知られています。Pythonの関数にもNumPyで対応する関数が用意されているものが多いので、しっかり覚えてNumPyのポテンシャルを活かせるコードを書いていきましょう!
np.arangeの引数と返り値
numpy.
arange
([start, ]stop, [step, ]dtype=None)
指定された区間内(start ~ stop)で等間隔の値をもった配列を返します。startからstopまでで等間隔の値をもつ配列を作りますが、stepを指定することで間隔を指定することができます。
この関数はPythonのrange関数とほぼ同じ関数ですが、返り値がlistではなくnp.arrayであることに注意です! 要素に小数(0.1など)を使いたい場合は、np.linspaceの方が適しています。
Parameters: |
|
---|---|
Returns: |
|
使い方
以下のコードはjupyterで実行する事をおすすめします。
import numpy as np
基本的な使い方
基本的な使い方はrange関数と同じです。
x = np.arange(10)
def array_info(x):
print("配列のshape", x.shape)
print("配列の要素のデータ型", x.dtype)
print("配列の中身n",x)
array_info(x)
startとstopを指定することで、任意の範囲の等差数列が作れます。
x2 = np.arange(0,10)
array_info(x2)
x3 = np.arange(5,11)
array_info(x3)
step幅を指定する
step幅を指定することもできます。
引数の順番に注意してください。
x4 = np.arange(5,15,3)
array_info(x4)
降順の等差数列
今までは昇順の等差数列ばかり作ってきましたが、もちろん降順も作れます。
ただし、step幅を指定してあげないと空の配列になってしまいます。注意してください。
x4 = np.arange(10, 0)
array_info(x4)
降順の等差数列を作るstepパラメータはマイナスの値を使います。
x5 = np.arange(10, 0, -1)
array_info(x5)
小数を使った等差数列
もちろん、要素が浮動小数点数になる場合にも対応しています。ですがこれをする場合、np.linspaceというもっと適した関数があるので、そっちを使ったほうが良いと思います。
x5 = np.arange(10, 0, -0.1)
array_info(x5)
dtypeの指定
dtypeを明示的に書くことで、出力される配列の型を指定することができます。
x5 = np.arange(10, 0, -0.7, dtype=np.float16)
array_info(x5)
まとめ
この記事では、NumPyで等差数列を出力する関数、np.arangeを紹介しました。
基本的にはrange関数と同じ動作をするので、覚えるのは簡単ですね! この関数を使いこなして、科学計算・機械学習モデルの実装などに役立ててくださいね。
今回の記事は下記の記事を参考にしています。
参考記事:DeepAge 「連番や等差数列を生成するnumpy.arange関数の使い方」
https://deepage.net/features/numpy-arange.html