ndarray – 条件式による要素の取り出し

基本形

ndarrayの要素に以下のような条件式を指定すると、条件に適合した要素を取り出せる。

これは次のような仕組みになっている。

まず配列の要素として、要素数と同数の論理値(True/False)を格納した配列を指定すると、Trueに対応した要素のみを要素とする配列が返される。

一方、配列全体を条件式とすると、各要素について条件判定を行った結果(True/False)を要素とする配列が返される。

したがって、配列の要素に配列全体の条件式を適用すると、その条件判定がTrueとなる要素からなる配列が返される。

別配列の条件による取り出し

条件に合う行の取り出し

上記の応用で、以下のように配列aの要素を配列bの条件により取り出すことができる。

この方法は、元データからクラス分類に応じたデータのみを取り出すときなどに使える。

たとえば以下は、5組の座標値のセットXから、クラスyが1となる座標値のサブセットを取り出すイメージ。

条件に合う列の取り出し

条件に適合した列のみ取り出す場合には、少し工夫が必要で、内包表記と条件指定を組み合わせる。

以下の例では、配列yで抽出したい列を1としていて、内包表記で配列を取り出す際にこれを利用している。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です