16. NumPyでベクトル・行列計算

NumPyでのインデックス指定による配列からのデータ取得・検索方法

更新日:

NumPyの配列のインデックスの指定方法は、リスト(list)でのインデックスの指定方法と同様です。(リストの詳しい説明をご覧になる場合、こちらのリンク「リスト(List)/配列の使い方」から参照ください。)各要素が順番に格納されているので、各要素を取得するには、インデックス(要素の順番)を指定します。インデックスは0から始まります。また範囲を指定することもできます。

実際にいくつかの例を見ていきましょう。

 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が新発売!今なら期間限定で89%オフ!!!

ベクトル(1次元配列)からのインデックス指定によるデータ取得・検索方法

まずは1次元の配列から始めます。配列Xを定義します。

In [1]: X = np.arange(0,10)
...: X
Out[1]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

 

インデックスは0から始まりますので、配列Xの6番目の要素5を指定するには、次のようにインデックスに5を指定します。

In [2]: X[5]
Out[2]: 5

 

インデックスは数値の間に:(コロン)を用いて、範囲指定することもできます。但し、範囲で終了値に指定された値は含まれず、終了値-1までになります。配列の3番目の要素2から5番目の4までを指定するには、次のようにインデックスに2:5を指定します。ここでは、終了値に指定されたインデックス5の値5は含まれません。

In [3]: X[2:5]
Out[3]: array([2, 3, 4])

 

インデックスの範囲の終了値が省略されると最後までの指定になります。6番目の要素から最後までを参照するには、次のようにインデックスを指定します。

In [4]: X[5:]
Out[4]: array([5, 6, 7, 8, 9])

 

インデックスの範囲の開始値が省略されると0番目からの指定になります。最初の要素から5番目の要素までを参照するには、以下のようにインデックスを指定します。

In [5]: X[:5]
Out[5]: array([0, 1, 2, 3, 4])

 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が新発売!今なら期間限定で89%オフ!!!

行列(2次元配列)からのインデックス指定によるデータ取得・検索方法

次に複数の行を持つ行列の例に移ります。行列Yを定義します。

In [6]: Y=np.array([[1,2,3,4],[11,12,13,14],[21,22,23,24]])
...: Y
Out[6]: array([[ 1, 2, 3, 4],
                      [11, 12, 13, 14],
                      [21, 22, 23, 24]])

 

2次元配列の場合、最初の数値で行の範囲を指定し、次の数値で列の範囲を指定します。例えば、3行目だけを取得する場合は次のようになります。

In [7]: Y[2,:]
Out[7]: array([21, 22, 23, 24])

 

3行2列目だけを取得します。

In [8]: Y[2, 1]
Out[8]: 22

 

行列Yから1行目、2行目の2,3,4列目を切り取ってみましょう。

In [9]: Y[:2,1:]
Out[9]: array([[ 2, 3, 4],
                      [12, 13, 14]])

 
 
関連記事です。
NumPyにおいて、条件を指定して配列から要素を抽出する方法については、こちらをご覧ください。

 
NumPyでの配列の値の更新方法と注意点については、こちらが参考になります。
 
NumPyにおけるndarray型の配列の作成方法を確認しましょう。
 
著書の紹介です。
 






まとめ記事

1

Python3におけるWEBスクレイピングのやり方について初心者向けに解説した記事です。   Requests、Beautiful Soup、Selenium、Pandas、newspape ...

2

Pythonの基本的なトピックについて、チュートリアル形式で初心者向けに解説した記事です。プログラミング未経験者や初心者でもわかりやすいよう、丁寧に解説しています。   Pythonでデータ ...

3

Pandas(パンダス)とは、データを効率的に扱うために開発されたPythonのライブラリの1つで、データの取り込みや加工・集計、分析処理に利用します。   Pandasには2つの主要なデー ...

4

データ分析、機械学習、ディープラーニングにはグラフの描画による可視化は不可欠です。データは、加工前の状態ではただの数字の羅列でしかなく、一目で必要な情報が伝わるものではありません。それを集計しグラフに ...

5

NumPy(ナンパイ)は、数値計算を効率的に行うための拡張ライブラリです。ベクトルや行列などを効率的に数値計算するための数学関数ライブラリを提供します。NumPyを使うことにより、数値計算をより早く、 ...

-16. NumPyでベクトル・行列計算

Copyright© AI-interのPython3入門 , 2020 All Rights Reserved.