特定のデータだけを狙い撃ち!numpyのフィルタリングをマスターしよう
こんにちは。ゆうせいです。
前回は、包丁で切り出すようにデータの範囲を指定するスライスについてお話ししましたね。でも、実際のデータ分析では「 行目から
行目」といった場所による指定だけでなく、「テストで
点以上の人だけ」とか「マイナスのデータだけ」というように、中身の条件でデータを選びたい場面が圧倒的に多いのです。
そんなときに活躍するのが、今回解説する フィルタ(フィルタリング) です。
皆さんは、砂場から宝物を探すとき、大きな「ふるい」を使ったことはありませんか。条件に合うものだけを残し、それ以外を落としてしまう。プログラミングのフィルタリングも、まさにあの「ふるい」と同じ役割を果たしてくれます!
フィルタリングの正体は「YesかNoか」
numpyでフィルタリングを行うとき、裏側では ブールインデックス参照 という仕組みが動いています。
少し難しい名前に聞こえますが、中身はシンプルです。配列の要素一つひとつに対して、「条件に合っていますか?」と問いかけ、 $True$ (はい)か $False$ (いいえ)という結果のリストを作っているだけなのです。
例えば、 というデータに対して、「
より大きいか」というフィルタをかけると、次のような Yes/No のリストが作られます。
$False, True, True$
この $True$ の場所にある数字だけを拾い上げるのが、フィルタリングの正体です。
比較演算子で「ふるい」を作る
フィルタの条件を作るには、数学でもおなじみの比較演算子を使います。
(より大きい)
(より小さい)
(以上)
(以下)
(等しい)
高校生の皆さんが数学の授業で使う記号とほとんど同じですね!
例えば、配列 data の中から 未満の数字だけを取り出したいときは、次のように書きます。
結果 data $[$ data
0 $]$
カッコの中に条件式をそのまま放り込むだけでいいなんて、とっても直感的だと思いませんか。
フィルタリングのメリットとデメリット
この機能を使いこなすと、データ処理の効率が劇的に変わります。
メリット
- 複雑な条件も一発: if文を何回も書かなくても、一行で欲しいデータが手に入ります。
- データの修正が楽: 「
未満のデータをすべて
に書き換える」といった操作も、フィルタを使えば一瞬です。
デメリット(注意点)
複数の条件を組み合わせるとき(例えば「 以上 かつ
以下」など)は、Python標準の
and や or が使えません。
代わりに、 & (かつ)や | (または)という記号を使い、それぞれの条件をカッコ () で囲む必要があります。ここだけは、書き方のルールとしてしっかり覚えておきましょう!
フィルタリングの書き方まとめ
よく使う条件の組み合わせ方を表にしました。
| やりたいこと | 書き方のイメージ |
| ある数字より大きいもの | data $[$ data |
| 偶数だけを取り出す | data $[$ data |
| 2つの条件の両方に合うもの | (条件1) |
| どちらかの条件に合うもの | (条件1) $latex |
実際にコードで「ふるい」にかけてみよう!
それでは、ランダムな数字の中から、特定の条件に合うものだけを抜き出してみましょう。
import numpy as np-10から10までのランダムな整数を10個作る
data = np.random.randint(-10, 11, 10)
print("元のデータ:", data)プラスの数字だけをフィルタリング
positive_data = data[data > 0]
print("プラスのみ:", positive_data)5より大きい、または -5より小さいものを抽出
outliers = data[(data > 5) | (data < -5)]
print("端っこの値:", outliers)実行するたびに、条件に合った数字だけが選ばれて表示されるはずです。まるで魔法のように、欲しいデータだけが手元に残りますね。
データの目利きになるための指針
フィルタリングをマスターした皆さんは、もう膨大なデータに圧倒されることはありません。自分の意志で、必要なデータだけを見つめることができるようになったからです!
これからの学習の指針として、ぜひ以下に挑戦してみてください。
- フィルタリングを使って、異常値(極端に大きすぎる、または小さすぎる数字)を見つけて削除する練習をしてみる。
- 条件に合う要素の「場所(番号)」だけを知りたいときに便利な
np.where()という関数について調べてみる。 - 2次元の表データに対して、特定の列の条件で「行まるごと」を抜き出す操作に挑戦してみる。
「もし〜なら」という思考を、データ全体に対して一瞬で適用できる快感を、ぜひたくさん味わってください。
セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。
最新の投稿
新人エンジニア研修講師2026年2月26日機械学習の文字式・記号お約束のまとめ
新人エンジニア研修講師2026年2月26日逆三角形の魔法?機械学習で絶対つまずくナブラとデルタの超簡単な覚え方
新人エンジニア研修講師2026年2月26日プログラミング初心者が最初に知るべきYAMLの基本
新人エンジニア研修講師2026年2月26日バラバラのデータを一つに!numpyの配列結合(concatenateとvstack)をマスターしよう
