スポンサーリンク
numpy.where()のサンプルコード
1次元配列のサンプルコード
numpy.where()のサンプルコードになります。
条件に一致したインデックス取得、置換のサンプルを揃えてみました。
$ cat sample.py #!/usr/bin/env python3 # coding: UTF-8 import numpy as np #1次元でnumpy配列を生成 npArray = np.array([10, 11, 12,13, 14, 15,16, 17, 18]) print("1次元配列で、13より大きい要素のインデックスを出力") print(np.where(npArray > 13)) print("1次元配列で、14より大きく、17未満となる要素のインデックスを出力") print(np.where((npArray > 14) & (npArray < 17))) print("1次元配列で、15以上の場合は1、それ以外は0に配列の要素を置換") upNpArray = np.where(npArray >= 15, 1, 0) print(upNpArray) print("1次元配列で、15以上の場合は1に配列の要素を置換、それ以外は元の配列のままにする") upNpArray = np.where(npArray >= 15, 1, npArray) print(upNpArray) print("1次元配列で、15以上の場合は元の配列のままとし、それ以外は0に配列の要素を置換") upNpArray = np.where(npArray >= 15, npArray, 0) print(upNpArray)
下記が実行結果になります。
$ ./sample.py 1次元配列で、13より大きい要素のインデックスを出力 (array([4, 5, 6, 7, 8]),) 1次元配列で、14より大きく、17未満となる要素のインデックスを出力 (array([5, 6]),) 1次元配列で、15以上の場合は1、それ以外は0に配列の要素を置換 [0 0 0 0 0 1 1 1 1] 1次元配列で、15以上の場合は1に配列の要素を置換、それ以外は元の配列のままにする [10 11 12 13 14 1 1 1 1] 1次元配列で、15以上の場合は元の配列のままとし、それ以外は0に配列の要素を置換 [ 0 0 0 0 0 15 16 17 18]
スポンサーリンク
2次元配列のサンプルコード
下記が2次元配列の場合のサンプルコードになります。
$ cat sample.py #!/usr/bin/env python3 # coding: UTF-8 import numpy as np #2次元でnumpy配列を生成 npArray = np.array( [[10, 11, 12], [13, 14, 15], [16, 17, 18]]) print("2次元配列で、14より大きい要素のインデックスを出力") print(np.where(npArray > 14)) print("2次元配列で、14より大きく、17未満となる要素のインデックスを出力") print(np.where((npArray > 14) & (npArray < 17))) print("2次元配列で、15以上の場合は1、それ以外は0に配列の要素を置換") upNpArray = np.where(npArray >= 15, 1, 0) print(upNpArray) print("2次元配列で、15以上の場合は1に配列の要素を置換、それ以外は元の配列のままにする") upNpArray = np.where(npArray >= 15, 1, npArray) print(upNpArray) print("2次元配列で、15以上の場合は元の配列のままとし、それ以外は0に配列の要素を置換") upNpArray = np.where(npArray >= 15, npArray, 0) print(upNpArray)
下記が実行結果になります。
$ ./sample.py 2次元配列で、14より大きい要素のインデックスを出力 (array([1, 2, 2, 2]), array([2, 0, 1, 2])) 2次元配列で、14より大きく、17未満となる要素のインデックスを出力 (array([1, 2]), array([2, 0])) 2次元配列で、15以上の場合は1、それ以外は0に配列の要素を置換 [[0 0 0] [0 0 1] [1 1 1]] 2次元配列で、15以上の場合は1に配列の要素を置換、それ以外は元の配列のままにする [[10 11 12] [13 14 1] [ 1 1 1]] 2次元配列で、15以上の場合は元の配列のままとし、それ以外は0に配列の要素を置換 [[ 0 0 0] [ 0 0 15] [16 17 18]]
スポンサーリンク
numpy.all()とnumpy.any()のサンプルコード
numpy.all()とnumpy.any()のサンプルコードになります。
$ cat sample.py #!/usr/bin/env python3 # coding: UTF-8 import numpy as np #2次元でnumpy配列を生成 npArray = np.array( [[20, 21, 22], [23, 24, 25], [26, 27, 28]]) print("配列の全ての要素が24より大きければTrue、それ以外はFalseを返す") print(np.all(npArray > 24)) print("配列の全ての要素が0より大きく30未満であればTrue、それ以外はFalseを返す") print(np.all((npArray > 0) & (npArray < 30))) print("配列の要素の中で、24より大きい要素が1つ以上あればTrue、それ以外はFalseを返す") print(np.any(npArray > 24)) print("配列の要素の中で、28より大きく30未満の要素が1つ以上あればTrue、それ以外はFalseを返す") print(np.all((npArray > 28) & (npArray < 30)))
下記が実行結果になります。
$ ./sample.py 配列の全ての要素が24より大きければTrue、それ以外はFalseを返す False 配列の全ての要素が0より大きく30未満であればTrue、それ以外はFalseを返す True 配列の要素の中で、24より大きい要素が1つ以上あればTrue、それ以外はFalseを返す True 配列の要素の中で、28より大きく30未満の要素が1つ以上あればTrue、それ以外はFalseを返す False
スポンサーリンク