NumPyのallとany | Python-izm

NumPyのallとany

Pythonの組み込み関数にはallanyがありますが、NumPyにも同じような機能があります。

all

numpy.allはすべての要素が真(True)であるときにTrueを返します。引数axisを0とすると縦軸ごとの結果を返し、1とすると横軸ごとの結果を返します。na_1は、縦軸で見た場合「1, 0, 1」「1, 0, 1」「1, 1, 1」なので [False False True] となり、横軸で見た場合は「1, 1, 1」「0, 0, 1」「1, 0, 1」なので [ True False False] となります。

import numpy


na_1 = numpy.array(
    [
        [1, 1, 1],
        [0, 0, 1],
        [1, 0, 1],
    ]
)
na_2 = numpy.array(
    [
        [1, 1, 1],
        [1, 1, 1],
        [1, 1, 1],
    ]
)


print(numpy.all(na_1))
print(numpy.all(na_2))
print('-------------------------')
print(numpy.all(na_1, axis=0))
print(numpy.all(na_1, axis=1))
False
True
-------------------------
[False False  True]
[ True False False]

またndarrayクラスにもallメソッドが実装されています。

import numpy


na_1 = numpy.array(
    [
        [1, 1, 1],
        [0, 0, 1],
        [1, 0, 1],
    ]
)
na_2 = numpy.array(
    [
        [1, 1, 1],
        [1, 1, 1],
        [1, 1, 1],
    ]
)


print(na_1.all())
print(na_2.all())
print('-------------------------')
print(na_1.all(axis=0))
print(na_1.all(axis=1))
False
True
-------------------------
[False False  True]
[ True False False]

any

numpy.anyはいずれか要素が真(True)であるときにTrueを返します。引数axisについてはallと同じです。

import numpy


na_1 = numpy.array(
    [
        [1, 0, 1],
        [0, 0, 0],
        [1, 0, 1],
    ]
)


print(numpy.any(na_1))
print('-------------------------')
print(numpy.any(na_1, axis=0))
print(numpy.any(na_1, axis=1))
True
-------------------------
[ True False  True]
[ True False  True]

またndarrayクラスにもanyメソッドが実装されています。

import numpy


na_1 = numpy.array(
    [
        [1, 0, 1],
        [0, 0, 0],
        [1, 0, 1],
    ]
)


print(na_1.any())
print('-------------------------')
print(na_1.any(axis=0))
print(na_1.any(axis=1))
True
-------------------------
[ True False  True]
[ True False  True]