旅行好きなソフトエンジニアの備忘録

プログラミングや技術関連のメモを始めました

【Python】 ndarrayのインデキシング

書籍「科学技術計算のためのPYTHON入門」のメモです。ndarrayのインデキシングについて今まで何も意識せず使っていたのですが、書籍にまとめられていたのでメモします。

  • 基本インデキシング(ビューが生成される)
# ndarray_viewの変更がndarrayにも影響を及ぼす
ndarray_view = ndarray[1, :]
  • 応用インデキシング(コピーが生成される)
    • ブール値インデキシング
    • 整数配列インデキシング
# ブール値インデキシングの例
# 0.5より大きい箇所のみ取り出す
# maskedを変更してもndarrayに影響を及ぼさない
mask = ndarray > 0.5
masked = ndarray[mask]

# 整数配列インデキシングの例
# (0,2), (2,0), (1,3)の位置の要素を取り出す
# extractedを変更してもndarrayに影響を及ぼさない
extracted = ndarray[[0, 2, 1], [2, 0, 3]]

科学技術計算のためのPython入門 ――開発基礎、必須ライブラリ、高速化

科学技術計算のためのPython入門 ――開発基礎、必須ライブラリ、高速化