Pythonのスライスを使った配列操作はとても便利です。
今回は、numpy配列を例にとって、使い方をご紹介します。

スポンサーリンク

Pythonのスライスの表記方法

1次元のnumpy配列の場合

スライスを使った操作方法は、下記の形式で書きます。
配列arrayのAからB-1番目のインデックスの要素にアクセスできます。
array[A: B]
A:開始インデックス B:終了インデックス

スポンサーリンク

1次元のnumpy配列のサンプルコード

1次元のnumpy配列を定義して、スライスで参照してprint出力しています。

下記が実行結果になります。

2次元のnumpy配列の場合

2次元配列の場合は、下記の形式でスライスを書きます。
配列arrayの行については、AからB-1番目のインデックスの要素にアクセスできます。
列については、CからD-1番目のインデックスの要素にアクセスできます。
array[A: B][C: D]
A:開始インデックス B:終了インデックス
C:開始インデックス D:終了インデックス

2次元のnumpy配列の使い方の例

2次元を例にいくつかご紹介します。
2次元配列の操作を例にして、いくつかPythonのサンプルコードを紹介したいと思います。

全ての行と列にアクセスする場合は、下記のように、”:”のみ記載すればOKです。

行は先頭1行のみ 列は全ての列にアクセスする場合。

行は全ての行を対象とし、列は先頭1列のみにアクセスする場合。

行は全ての行を対象とし、列は先頭2列のみにアクセスする場合。

2次元のnumpy配列のサンプルコード

下記にPythonのスライスのサンプルコードをご紹介します。

下記のように、csvファイルがあったとします。

まずは、loadtxtでcsvファイルを読み込んで、配列npArrayに格納します。
その後、先程のスライスの使い方の例に沿って、npArrayの要素をprint出力します。

実行すると、下記のように、スライスで指定した行と列が出力されているのが確認できます。

スポンサーリンク

numpy配列へのスライスを使った代入方法(ブロードキャスト)

スライスで指定した部分配列に、ブロードキャストで値を代入することができます。

1次元のnumpy配列

下記の形式で、配列arrayのAからB-1番目のインデックスの要素に、Cを代入します。

下記が、サンプルコードになります。

下記が実行結果になります。

2次元のnumpy配列

下記の形式で、AからB-1番目の行のインデックスの要素、CからD-1番目のインデックスの要素に、Eを代入します。

下記が、サンプルコードになります。

下記が実行結果になります。

スポンサーリンク