numpy.where()関数

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つの次元があります。

コードワードは簡単ではありません。役に立つと思ったら、手を挙げて「いいね」を付けて、もっと多くの人に見てもらいましょう〜

おすすめ

転載: blog.csdn.net/u011699626/article/details/112058004