【问题标题】:Find an array in a 2d array with float values在具有浮点值的二维数组中查找数组
【发布时间】:2021-01-31 20:42:52
【问题描述】:

我有一个 numpy 数组,我想搜索它以找到一个数组(不是一个值)。

values = np.array([[0.73123909, 0.73298429, 0.73472949, 0.73647469, 1.        ],
                   [0.72949389, 0.46596859, 0.39441536, 0.87260035, 1.        ],
                   [0.2600349 , 0.05235602, 0.73298429, 0.96684119, 1.        ],
                   [0.83071553, 0.37172775, 0.7452007 , 0.08202443, 1.        ],
                   [0.27923211, 0.28097731, 0.28272251, 0.28446771, 1.        ]])

item = np.array([0.73123909, 0.73298429, 0.73472949, 0.73647469, 1.        ])
index = np.where(values == item)

我希望得到类似于index = 0(array([0]),) 的结果 但我明白了

(array([  0,   1,   2,   3,   4,]),
array([4, 4, 4, 4, 4 ]))

类似的答案是目标整数,不适用于浮点数。

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:

    试试这个:

    >>> np.where(np.isclose(values, item).all(1))
    (array([0], dtype=int64),)
    

    顺便说一句,如果您正在处理浮点数,请不要使用 == 检查是否相等,而是使用 isclose

    【讨论】:

      猜你喜欢
      • 2017-07-22
      • 1970-01-01
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 2017-04-03
      • 2018-07-05
      相关资源
      最近更新 更多