Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 整数配列インデックス | インデックスとスライシング
NumPy基礎

book整数配列インデックス

メニューを表示するにはスワイプしてください

基本的なインデックス指定では単一の整数を使用しますが、NumPy では 1次元の整数配列(整数のリストも可)全体をインデックスとして使用することも可能です。

1次元配列における整数配列インデックス指定

インデックス指定に使用する整数配列の各要素は、それぞれインデックスとして扱われます。例えば、array[[0, 1, 3]] は、0 が1次元配列である場合、インデックス 13array の要素を1次元配列として取得します。インデックス指定には NumPy 配列も利用できますが、コードが複雑になります。

12345678
import numpy as np array = np.array([23, 41, 7, 80, 3]) # Retrieving elements at indices 0, 1 and 3 print(array[[0, 1, 3]]) # Retrieving elements at indices 1, -1 and 2 in this order print(array[[1, -1, 2]]) # IndexError is thrown since index 5 is out of bounds print(array[[2, 5]])
copy

1次元配列における整数配列インデックス指定

2次元および高次元配列についても、整数配列インデックス指定は各軸に沿って1次元配列と同様に動作します。インデックス指定に1つの整数配列のみを使用する場合、1つの軸(軸0)に沿ってインデックス指定を行います。カンマで区切った2つの配列を使用する場合、両方の軸(軸0および軸1)に沿ってインデックス指定を行います。

整数の配列を使って軸0のみに沿ってインデックス指定を行うと、2次元配列が返されます。このようなインデックス指定で要素にアクセスすると、それらの要素が新しい配列にまとめられます。この新しい配列は1次元配列から構成され、まとめることで次元数が1つ増え、2次元配列となります。

整数の2つの配列を使って軸0および軸1に沿ってインデックス指定を行うと、1次元配列が返されます。

Note
注意

各軸で使用するすべての整数配列は、同じ形状でなければなりません。

123456789101112131415
import numpy as np array_2d = np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]) # Retrieving first and the third row print(array_2d[[0, 2]]) # Retrieving the main diagonal elements print(array_2d[[0, 1, 2], [0, 1, 2]]) # Retrieving the first and third element of the second row print(array_2d[1, [0, 2]]) # IndexError is thrown, since index 3 along axis 0 is out of bounds print(array_2d[[0, 3], [0, 1]])
copy

ご覧のとおり、基本的な整数インデックス指定と整数配列インデックス指定を組み合わせることも可能です。

Note
注意

再度、インデックスのうち少なくとも1つが範囲外の場合、IndexErrorが発生します。

応用例として、このようなインデックス指定は、隣接していない要素や規則的でない順序の要素を選択したい場合に便利です。連続した範囲を扱うスライスとは異なり、この方法では取得したい要素を正確に指定できます。分散したデータの抽出や配列内の値の並べ替えに役立ちます。

1. 5つの製品の月間売上データ(単位:千)を分析しています。このコードの出力は何ですか?

2. temperatures 配列は、3都市の月曜、火曜、水曜の週間気温(°C)を表しています。ベルリンの月曜と火曜、マドリードの火曜の気温を取得する正しい選択肢を選んでください。

question mark

5つの製品の月間売上データ(単位:千)を分析しています。このコードの出力は何ですか?

正しい答えを選んでください

question mark

temperatures 配列は、3都市の月曜、火曜、水曜の週間気温(°C)を表しています。ベルリンの月曜と火曜、マドリードの火曜の気温を取得する正しい選択肢を選んでください。

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  5

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  5
some-alt