numpy.where()
メソッドを呼び出す
numpy.where(condition[, x, y])
各パラメータの意味:
condition
:オブジェクトアレイ状、ブール値
x, y
:場所の値が与えられ、そして、オブジェクトアレイ状の場合condition
であるTrue
、からx
選択された値、condition
などFalse
からy
選択された値。条件が満たされた場合は対応する値の配列
を返しx
、条件が満たされない場合はy
対応する値の配列を返す戻り値があります。
注:ここcondition
ではx
、ですy
が、必要に応じて表示および説明するために、キーワードは本当の意味ではありません。
コードは次のように表示されます。
# -*- coding:utf-8 -*-
"""
author: 15025
time: 2020/12/30 20:27
software: PyCharm
"""
import numpy as np
class Debug:
@staticmethod
def mainProgram():
array = np.where([[True, False], [True, True]], [[1, 2], [3, 4]], [[9, 8], [7, 6]])
print("array的值为:")
print(array)
if __name__ == "__main__":
main = Debug()
main.mainProgram()
"""
array的值为:
[[1 8]
[3 4]]
"""
我々はここで見ることができます[[True, False], [True, True]]
私たちが言う対応しcondition
、[[1, 2], [3, 4]]
同等x
、[[9, 8], [7, 6]]
同等のy
我々はとき、conditon
であるFalse
から、時間y
の数値の抽出8
から、他のすべての値、x
対応する位置での抽出。最終的に、上記の結果が得られました。
ここでは、np.where()関数を使用して、配列内の最大値の対応する位置を取得する追加の例を示します。
# -*- coding:utf-8 -*-
"""
author: 15025
time: 2020/12/30 20:27
software: PyCharm
"""
import numpy as np
class Debug:
@staticmethod
def mainProgram():
array = np.array([0, 1, 2, 3, 5, 4])
array_ = np.where(array == np.max(array))
print("array_的值为:")
print(array_)
if __name__ == "__main__":
main = Debug()
main.mainProgram()
"""
array_的值为:
(array([4], dtype=int64),)
"""
ここarray_
での結果は、実際には現在の配列の最大値に対応するインデックス値です。
二次元の状況:
# -*- coding:utf-8 -*-
"""
author: 15025
time: 2020/12/30 20:27
software: PyCharm
"""
import numpy as np
class Debug:
@staticmethod
def mainProgram():
array = np.array([[0, 1, 2, 3, 5, 4, 5], [0, 1, 2, 3, 4, 5, 5]])
array_ = np.where(array == np.max(array))
print("array_的值为:")
print(array_)
if __name__ == "__main__":
main = Debug()
main.mainProgram()
"""
array_的值为:
(array([0, 0, 1, 1], dtype=int64), array([4, 6, 5, 6], dtype=int64))
"""
結果array([0, 0, 1, 1], dtype=int64)
は、配列内のy
インデックス値と示されたインデックス値をarray([4, 6, 5, 6], dtype=int64)
示しx
ます。
三次元の状況:
# -*- coding:utf-8 -*-
"""
author: 15025
time: 2020/12/30 20:27
software: PyCharm
"""
import numpy as np
class Debug:
@staticmethod
def mainProgram():
array = np.array([[[0, 1], [0, 1]],
[[1, 2], [1, 2]],
[[1, 3], [1, 3]]])
array_ = np.where(array == np.max(array))
print("array_的值为:")
print(array_)
if __name__ == "__main__":
main = Debug()
main.mainProgram()
"""
array_的值为:
(array([2, 2], dtype=int64), array([0, 1], dtype=int64), array([1, 1], dtype=int64))
"""
明らかに、3次元の結果は2次元の場合と似ていますが、もう1つの次元があります。
コードワードは簡単ではありません。役に立つと思ったら、手を挙げて「いいね」を付けて、もっと多くの人に見てもらいましょう〜