はじめに
NumPy は、科学的計算に使用される人気のある Python ライブラリです。数値データの分析に役立つ高性能な配列演算と数学関数を提供します。この実験では、NumPy のスライシングとインデックス付けの機能を学びます。
これは Guided Lab です。学習と実践を支援するためのステップバイステップの指示を提供します。各ステップを完了し、実践的な経験を積むために、指示に注意深く従ってください。過去のデータによると、この 初級 レベルの実験の完了率は 96%です。学習者から 100% の好評価を得ています。
配列のスライシング
スライシングとは、インデックスの範囲を指定することで配列のサブセットを抽出するプロセスです。NumPy 配列は、コロン : 演算子を使用してスライシングできます。
Python シェルを開く
ターミナルに次のコマンドを入力して Python シェルを開きます。
python3
NumPy をインポートする
NumPy は既にインストールされていますので、Python コードでインポートできます。
import numpy as np
1 次元の配列をスライシングする
## 1 次元配列を作成する
a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
## インデックス 2 からインデックス 5 までの配列をスライシングする
print(a[2:5])
出力:
[2 3 4]
多次元の配列をスライシングする
多次元の配列もスライシングできます。
## 2 次元配列を作成する
b = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
## 最初の 2 行と最初の 2 列をスライシングする
print(b[:2, :2])
出力:
[[0 1]
[3 4]]
ブール型配列を使ったインデックス付け
ブール型インデックス付けは、条件に基づいて配列をフィルタリングする強力な機能です。既存の配列に論理演算子を適用することで、ブール型配列を作成できます。
1 次元配列を作成する
c = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
条件 (c > 5) に基づいてブール型配列を作成する
mask = c > 5
print(mask)
出力:
[False False False False False False True True True True]
ブール型配列を使って元の配列をフィルタリングする
print(c[mask])
出力:
[6 7 8 9]
ファンシーインデックス付け
ファンシーインデックス付けは、インデックスの配列を使って配列をインデックス付けする方法です。この手法を使って、配列の特定の要素やサブセットを抽出できます。
## 1 次元配列を作成する
d = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
## インデックスの配列を作成する
indices = np.array([1, 3, 5])
## ファンシーインデックス付けを使って指定されたインデックスの要素を抽出する
print(d[indices])
出力:
[1 3 5]
- また、ファンシーインデックス付けを使って、配列の特定の要素に値を割り当てることもできます。
## 1 次元配列を作成する
e = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
## インデックスの配列を作成する
indices = np.array([1, 3, 5])
## 指定されたインデックスの要素に値 10 を割り当てる
e[indices] = 10
print(e)
出力:
[ 0 10 2 10 4 10 6 7 8 9]
まとめ
おめでとうございます!あなたは NumPy のスライシングとインデックス付けの実験を完了しました。
この実験では、NumPy 配列のスライシングとインデックス付けの基本を学びました。
- スライシングにより、インデックスの範囲を指定することで配列のサブセットを抽出できます。
- ブール型インデックス付けにより、条件に基づいて配列をフィルタリングできます。
- ファンシーインデックス付けにより、インデックスの配列を使って配列の特定の要素やサブセットを抽出できます。



