【Python NumPy arange】ベクトル・行列の生成・初期化方法(5):1次元配列(ベクトル)・数列の生成方法(range, arrange)について、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】

numpy

NumPy は、Python モジュールの1つで、

データ分析や人工知能などで活用必須のライブラリです。

NumPyの文法を理解すると、

  • サクッと実装できる

というメリットがあります。

その反面、教科書などサンプルコードを理解するときに、

  • NumPyの文法を知らないと理解できない

といったデメリットがあります。

NumPyは、高次元データを扱うことが多く、

各次元ごとに処理を行う

といったこともよくあります。

各次元は、それぞれ1次元ですので、

1次元の繰り返し処理などを使ったりします。

そこで、整数列(例えば、繰り返し処理を制御するため使ったりします)を生成する方法(初期化)をしておくと役立ちます。

そこで本シリーズでは、NumPyの配列生成や初期化について、まとめています。

第1弾から第4弾までは、行列の初期化を扱いました

【Python NumPy】ベクトル・行列の生成・初期化方法(1):ゼロ行列 zeros、zeros_likeについて、サンプルコードとともに、サクッと、わかりやすく、まとめました【Python 入門】

 

【Python NumPy】ベクトル・行列の生成・初期化方法(2):すべて要素1の行列 ones、ones_likeについて、サンプルコードともに、サクッと、わかりやすく、まとめました【Python 入門】

 

【Python NumPy】ベクトル・行列の生成・初期化方法(3):単位行列の生成( identity、eye)について、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】

 

【Python NumPy 独学】ベクトル・行列の生成・初期化方法(4):高速な配列の生成方法(empty)について、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】

これら4つを理解しておけば、NumPyの配列の生成・初期化の基礎はオッケーです。

 

しかし配列にはベクトル(1次元配列)もあり、行列よりりもよく使います。

例えば、整数列は、繰り返し制御などでよく使います。

そこで本記事では、NumPy での1次元配列の生成・初期化について、

Python  での1次元配列の生成・初期化と比較しながら、

サクッと、わかりやすく、まとめたいと思います。

 

「Numpy」については、こちらの書籍でも解説しています(無料)↓

 

【Python NumPy arange】ベクトル・行列の生成・初期化方法(5):1次元配列(ベクトル)・数列の生成方法(range, arrange)について、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】

数列・整数列を生成・初期化するには、

いくつかの方法があります。

ここではNumPy についての記事ですが、

初学者の方は、Pythonでの数列・生数列の生成・初期化と混同されることがあります。

そこでまず、

  • Python での数列の生成・初期化

をサクッとまとめた後で、

  • NumPy での数列の生成・初期化

についてまとめたいと思います。

「Python」での数列の生成・初期化:(range)

Python では数列を生成・初期化するには、

  • range ( ) 関数

が使えます。

In[2] [3] のように、range(5) は、

0、1、2、3、4

0から5個の整数列を生成(ジェネレート)する関数です。

In[2] では、単に range(5) とすると、ジェネレータが返されています。

range(5) の中身(0, 1,2,3,4)は、

In[3] のように list 関数 で表示できます。

Out[3]のように、range(5)は、

リストとして [0, 1, 2, 3, 4] を返していることがわかります。

 

実際に、range(5)をジェネラータとして、for文の中で使ってみたのが In[4]です。

in の後ろに置くことで、

range(5) の中身(0, 1, 2, 3, 4)を1つずつ生成(ジェネレート)して、for の右の i に代入します。

これを中身がなくなるまで繰り返しているのがわかります。

このように、ジェネレータは、適切な場所で、繰り返し値を生成する機能があります。

ちなみに、Python のFor文については、こちらで解説をしています↓

【Python 文法 独学】Python のループ(繰り返し)「 for(フォー)文」とは?for 文の使い方や注意点、range関数などのサンプルコード・具体例など、ループの書き方をサクッとまとめました【Python 学習 初心者】

 

 

In[5]では、range ( )の中に、1つの数字を入れています。

この場合、

  • 0から、入れた数字の1つ前までの整数のリスト

を返します。

1つの数字は、整数列の最後を決めるわけです。

 

In[7]では、range ( )の中に、2つの数字を入れています。

この場合、

  • 最初の数字(この場合3)から、後ろの数字(この場合10)の1つ前までの整数のリスト

を返します。

前の数字は整数列の最初を、後ろの数字は整数列の最後を決めます。

 

In[8][9][10]では、range ( )の中に、3つの数字を入れています。

この場合、

  • 最初の数字(この場合3)から、後ろの数字(この場合10)の1つ前までの整数
  • 3つ目の数字の間隔(この場合2、3、4)で飛び飛びに

を返します。

 

ちなみに、In[12] に示すよに、

range( ) 関数の中には、小数は指定できません。

  • 整数のみを使う

ということを覚えておきましょう。

 

というわけで、Python range関数についてはこんな感じになります。

これから、NumPyでの整数列の生成・初期化について説明してきます。

 

 

「NumPy」での数列の生成・初期化:(np.arange)

NumPy では、np.arange が使えます。

Python の range関数 と似ていますので、

同じところと違うところを意識しておくのがポイントです。

NumPy では数列を生成・初期化するには、

  • arange メソッド

が使えます。

In[2] [3] のように、np.arange(5) は、

0、1、2、3、4

0から5個の整数列を生成(ジェネレート)するメソッドです。

In[2] では、単に np.arange(5) とすると、NumPy アレイが返されています。

np.arange(5) の中身[0, 1,2,3,4]は、

In[3] のように print 関数 で表示できます。

Out[3]のように、np.arange(5) は、

リストとして [0, 1, 2, 3, 4] を返していることがわかります。

 

for文の中で, np.arange(5) を使ってみたのが In[4]です。

in の後ろに置くことで、

np.arange(5) の中身(0, 1, 2, 3, 4)を1つずつ生成(ジェネレート)して、for の右の i に代入します。

これを中身がなくなるまで繰り返しているのがわかります。

range関数と同じように使えているのがわかります。

 

In[5]では、np.arange( )の中に、1つの数字を入れています。

この場合、

  • 0から、入れた数字の1つ前までの整数のリスト

を返します。

1つの数字は、整数列の最後を決めるわけです。

 

In[7]では、np.arange( ) の中に、2つの数字を入れています。

この場合、

  • 最初の数字(この場合3)から、後ろの数字(この場合10)の1つ前までの整数のリスト

を返します。

前の数字は整数列の最初を、後ろの数字は整数列の最後を決めます。

 

In[8][9][10]では、np.arange( )の中に、3つの数字を入れています。

この場合、

  • 最初の数字(この場合3)から、後ろの数字(この場合10)の1つ前までの整数
  • 3つ目の数字の間隔(この場合2、3、4)で飛び飛びに

を返します。

range関数と同じように使えているのがわかります。

 

ちなみに、In[13] に示すよに、

np.arange( ) の中には、

  • 小数を指定できる

ということを覚えておきましょう。

この点は range関数と違っていますので気を付けましょう(range関数は整数だけ使えました)。

 

さらに、np.arange は、データ型を指定することができます。

In[14] では、整数列を生成しますが、

In[19] のように、

dtype = ‘float’ 

として、浮動小数点型の出力を生成できます。

同様に、In[20] では、浮動小数点列を生成しますが、

In[21] のように、

dtype = ‘int’ 

とすると、整数型の出力を生成できます。

 

 

というわけで、本記事では、

NumPy での1次元配列の生成・初期化について、

Python  での1次元配列の生成・初期化と比較しながら、

サクッと、わかりやすく、まとめました。

 

 

NumPy での1次元配列の生成・初期化には、別の方法もあります。

  • np.linspace

を使うやり方です。

 

そこで第6話は、

np.linspace の使い方と、似たような使い方ができる

  • np.arange

との違いについて

サクッと、わかりやすく、まとめました↓

【Python NumPy linspace】ベクトル・行列の生成・初期化方法(6):1次元配列(ベクトル)・数列の生成方法(linspace, arrange)について、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】

 

 

 

こちらもございます↓

 

「Numpy」については、こちらの書籍でも解説しています(無料)↓