NumPy中級まとめ|配列操作・演算・条件処理を体系的に復習しよう

はじめに

NumPy中級シリーズでは、配列の操作から条件処理、シミュレーションまで、実務や学習に役立つ内容を順を追って学んできました。本記事では、これまでの内容を総復習しつつ、理解を深めるための演習問題や実用パターンの整理を行います。

「全体の流れをおさらいしたい」「実践で使える形で身につけたい」という方に向けた保存版まとめです。


学習マップ(本シリーズの流れ)

  1. 中級①:配列操作の基本と応用
  2. 中級②:ブロードキャストと演算
  3. 中級③:条件抽出と論理演算
  4. 中級④:乱数生成とシミュレーション
  5. 中級⑤:便利関数大全

総復習:これだけは押さえたいポイント

✅ 配列操作系

  • reshape():形状を変える
  • axis:0は縦、1は横の方向
  • スライス:部分抽出 [行, 列]

✅ 演算系

  • broadcast:形が違っても演算可能にする仕組み
  • スカラー×配列、列ベクトル+行ベクトルの例

✅ 条件処理系

  • arr[条件] で要素を抽出
  • &, |, ~() を忘れずに
  • np.where(cond, A, B):条件に応じてAかBを返す

✅ シミュレーション系

  • np.random.seed(数値) で再現性のある乱数
  • rand, randint, normal など種類を使い分け
  • モンテカルロ的な反復実験も簡単に可能

✅ 便利関数系

  • np.any:1つでもTrue
  • np.all:すべてTrue
  • np.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応用編へとステップアップしましょう!

コメント

タイトルとURLをコピーしました