整数配列インデックス付け
メニューを表示するにはスワイプしてください
基本的なインデックス指定(単一のインデックスに整数を使用)に加えて、NumPy では 1次元の整数配列(整数のリストも可)全体をインデックスとして使用することも可能。
1次元配列における整数配列インデックス指定
インデックス指定に使用する整数配列の各要素はインデックスとして扱われる。たとえば、array[[0, 1, 3]] は、0 が1次元配列である場合、インデックス 1、3、array の要素を1次元配列として取得する。また、インデックス指定には NumPy 配列も利用可能だが、コードが複雑になる。
12345678import 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]])
1次元配列における整数配列インデックス指定
2次元および高次元配列についても、整数配列インデックス指定は各軸に沿って1次元配列と同様に動作します。インデックス指定に1つの整数配列のみを使用する場合、1つの軸(軸0)に沿ってインデックス指定を行います。カンマで区切った2つの配列を使用する場合、両方の軸(軸0および軸1)に沿ってインデックス指定を行います。
整数の配列を使って軸0のみに沿ってインデックス指定を行うと、2次元配列が返されます。このようなインデックス指定で要素にアクセスすると、それらの要素が新しい配列にまとめられます。この新しい配列は1次元配列から構成され、まとめることで次元が1つ増え、2次元配列となります。
2つの整数配列を使って軸0および軸1に沿ってインデックス指定を行うと、1次元配列が返されます。
各軸で使用するすべての整数配列は、同じ形状でなければなりません。
123456789101112131415import 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]])
ご覧のとおり、基本的な整数インデックス指定と整数配列インデックス指定を組み合わせることも可能です。
再度、インデックスのうち少なくとも1つが範囲外の場合、IndexErrorが発生します。
応用例として、このようなインデックス指定は、隣接していない特定の要素や規則的でない順序の要素を選択する必要がある場合に有用です。連続した範囲を扱うスライスとは異なり、この方法では取得したい要素を正確に選択できます。配列内の散在したデータを抽出したり、値を並べ替えたりする際に役立ちます。
1. 5つの製品の月間売上データ(単位:千)を分析しています。このコードの出力は何ですか?
2. temperatures 配列は、3都市の月曜、火曜、水曜における週間気温(℃)を表しています。ベルリンの月曜と火曜、マドリードの火曜の気温を取得する正しい選択肢を選んでください。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください