NumPy は、Python モジュールの1つで、
高速計算やデータ加工などで必須のライブラリです。
NumPyの文法を理解すると、
サクッと実装でき、プログラミングが加速します。
NumPyは、高次元データを扱うことが多く、
各次元ごとに処理を行う
といったこともよくあります。
各次元は、それぞれ1次元ですので、
1次元の繰り返し処理などを使ったりします。
そこで、整数列を生成する方法(初期化)をしておくと役立ちます。
そこで本シリーズでは、NumPyの配列生成や初期化について、まとめています。
第5話では、数列の生成・初期化について、
- NumPy の np.arange
- Python の range関数
を比較しながら、使い方をまとめました↓
また、第1弾から第4弾までは、行列の初期化を扱いました
『【Python NumPy】ベクトル・行列の生成・初期化方法(3):単位行列の生成( identity、eye)について、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】』
『【Python NumPy 独学】ベクトル・行列の生成・初期化方法(4):高速な配列の生成方法(empty)について、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】』
これら4つを理解しておけば、NumPyの配列の生成・初期化の基礎はオッケーです。
本記事では、NumPy での1次元配列の生成・初期化について、
- np.linspace
の使い方と、似たような使い方ができる
- np.arange
との違いについて
サクッと、わかりやすく、まとめたいと思います。
【Python NumPy linspace】ベクトル・行列の生成・初期化方法(6):1次元配列(ベクトル)・数列の生成方法(linspace, arrange)について、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】
数列・整数列を生成・初期化するには、
いくつかの方法があります。
NumPy では、主に2つの方法があります。
- np.arange
については、前回の記事でまとめました。
本記事では、もう1つの方法
- np.linspace
についてまとめ、
- np.linspace
- np.arange
の使い分けについても、わかりやすく、サクッとまとめたいと思います。
「NumPy」での数列の生成・初期化:(np.linspace)
np.linspace は3つの数字を指定する
np.linspace( ) の中に、3つの数字が指定されています。
np.linspace( ) では、
- 左の数字から、
- 真ん中の数字までを、
- 右の数字で等分
した数列を生成します。
上の例 np.linspace(0, 5, 6)は、
- 0から5までを6等分した数列
を返します。
6等分するので、6個の要素を持った配列になります。
np.linspace はデフォルトで50等分
この例では、
np.linspace(0, 5)と2つの数字が指定されています。
この場合、
数列の最初と最後が指定されてますが、
何等分するかは指定されていません。
なので、デフォルトの50等分が採用されて、
Out[33]のようになっています。
50等分するので、50個の配列が返されます。
数列の間隔は retstep で指定する
何等分かすると、数列同士の間隔の値が複雑になることがかります。
それを表示して確認したりすることができます。
In[35]のように、np.linspace( )の中に、数字を3つ指定して、
そのあとに「retstep=True」と指定します。
Out[35]のように、最後に、1.0と間隔が表示されています。
デフォルトでは表示されません。
np.linspace はデータ型を指定できる
デフォルトでは、浮動小数点型で生成されます。
例えば、dtype =’int’
などと指定すると、整数型のデータが生成されます。
np.linspace と np.arange の違いとは
np.linspace も np.arange も、基本的には、
3つの数字を指定して使います。
ただし、それらの数字の意味が違っています。
np.linspace の場合は、
- 左の数字 = 生成する数列の最初の数字
- 真ん中の数字 = 生成する数列の最後の数字
- 右の数字 = 最初の数字と最後の数字を何等分するか
np.arange の場合は
- 左の数字 = 生成する数列の最初の数字
- 真ん中の数字 = 生成する数列の最後の数字+1
- 右の数字 = 何個おきに生成するか
np.linspace とnp.arange の違いは、
真ん中の数字と右の数字になります。
最初の数字は、どちらも生成する配列の最初の数字です。
真ん中の数字は、生成する配列の最後に関係します。
生成する配列の最後の数字は、
- np.linspace では「真ん中の数字」
- np.arange では「真ん中の数字−1」
になります。
右の数字は、
- np.linspace では、「何等分にするか」
- np.arange では、「何個おきに生成するか」
を表しています。
というわけで、本記事では、
NumPy での1次元配列の生成・初期化について、
- np.linspace
の使い方と、似たような使い方ができる
- np.arange
との違いについて
サクッと、わかりやすく、まとめました。
こちらもございます↓