はじめに
NumPy中級シリーズでは、配列の操作から条件処理、シミュレーションまで、実務や学習に役立つ内容を順を追って学んできました。本記事では、これまでの内容を総復習しつつ、理解を深めるための演習問題や実用パターンの整理を行います。
「全体の流れをおさらいしたい」「実践で使える形で身につけたい」という方に向けた保存版まとめです。
学習マップ(本シリーズの流れ)
- 中級①:配列操作の基本と応用
- reshape, axis, スライス
- → NumPy中級①:配列操作の基本と応用|reshape・axis・スライスをマスター
- 中級②:ブロードキャストと演算
- 自動的な次元合わせと演算
- → NumPy中級②:ブロードキャストと演算の仕組みを徹底解説
- 中級③:条件抽出と論理演算
- Boolean配列、AND/OR/NOT、where
- → NumPy中級③:条件抽出と論理演算|配列を自在にフィルタリングする
- 中級④:乱数生成とシミュレーション
- np.random、正規分布、シード固定
- → NumPy中級④:乱数生成とシミュレーション|再現性と統計処理の基本
- 中級⑤:便利関数大全
- np.where, np.any, np.all, np.select
- → NumPy中級⑤:便利関数大全|np.where, np.any, np.all, np.select を使いこなす
総復習:これだけは押さえたいポイント
✅ 配列操作系
reshape():形状を変えるaxis:0は縦、1は横の方向スライス:部分抽出[行, 列]
✅ 演算系
broadcast:形が違っても演算可能にする仕組み- スカラー×配列、列ベクトル+行ベクトルの例
✅ 条件処理系
arr[条件]で要素を抽出&,|,~は()を忘れずにnp.where(cond, A, B):条件に応じてAかBを返す
✅ シミュレーション系
np.random.seed(数値)で再現性のある乱数rand,randint,normalなど種類を使い分け- モンテカルロ的な反復実験も簡単に可能
✅ 便利関数系
np.any:1つでもTruenp.all:すべてTruenp.select([条件], [値], default):多条件を一括で処理
総合演習問題(実践力チェック)
問1:成績に応じたランク付け
ある学生の得点が以下のように与えられます。
scores = np.array([45, 65, 78, 88, 92])- 50未満 → “D”
- 70未満 → “C”
- 85未満 → “B”
- 85以上 → “A”
これを np.select を使ってラベル付けしてください。
問2:欠損値の検出
以下のデータから、np.isnan() と np.any() を使って「どの行に欠損があるか」を判断する方法を考えてください。
arr = np.array([[1.0, np.nan, 3.0], [4.0, 5.0, 6.0]])問3:シード固定による再現テスト
np.random.seed(123)を設定し、np.random.randint(0, 10, size=5)を実行- 同じコードを再度実行すると同じ値が出るか確認してみましょう。
おわりに
NumPy中級シリーズを通じて、配列の操作や論理処理、ランダム性の扱いまで一通り学ぶことができました。
これらの知識は、pandasやscikit-learnなど他のライブラリを使う際にも基礎として必ず役立ちます。自信を持って実務や学習に活かしてください。
次はNumPy応用編へとステップアップしましょう!

コメント