Python 要素の参照

インデキシングとスライシング

1次元配列はシーケンス型と同じ書式のインデキシングとスライシングで要素を参照できる。

スクリーンショット 2020-07-23 9.42.14

多次元配列の要素を参照する場合は、各次元についてのインデックスやスライスを,で区切って記述する。

スクリーンショット 2020-07-23 9.43.12

スライシングでは特定の行や列を参照できる。参照した配列が1行か1列である場合、結果は1次元配列で返される。

スクリーンショット 2020-07-23 9.43.52

ビューとコピー


配列の中身をコピーしたい場合や、インデキシング、スライシングを行う際に意識すべきことがある。NumPyでは元の配列とメモリを共有する配列をビューと呼ぶ。ビューにはメモリの使用量を抑えられるメリットがあるが、値を更新する時には影響を考える必要がある。

スクリーンショット 2020-07-23 9.44.41

配列のcopyメソッドを呼び出すと、新たにメモリが確保されて値が同じ配列が作られる。この配列はコピーといい、ほかにはarray関数の引数にcopy=Trueを指定して作成することができる。

スクリーンショット 2020-07-23 9.45.24

整数配列によるインデキシング


基本的なインデキシングのほかに、ファンシーインデキシングなどと呼ばれるものがある。その1つが整数配列によるインデキシングである。これは整数要素のリストや配列をインデックスに使う参照方法である。

スクリーンショット 2020-07-23 9.46.14

ブール配列によるインデキシング


もう1つのファンシーインデキシングがブール値の配列によるインデキシングで、配列から条件に合う要素だけを抽出したい場合に使用する。これには要素やブール値の配列やリストを使う。要素がTrueである位置の要素からなる配列が作成される。

スクリーンショット 2020-07-23 9.47.16

https://colab.research.google.com/drive/1WOZSGndtH1MRLsbt6asi-Eqmg7b1f_WU?usp=sharing

この記事が気に入ったらサポートをしてみませんか?