【问题标题】:How to return index location where np.allclose() is True如何返回 np.allclose() 为 True 的索引位置
【发布时间】:2018-07-09 09:25:09
【问题描述】:

我有一个 Python 问题,希望有人能帮助我。 我有 500 多个 numpy 数组索引的列表。 我想将该索引列表与另一组 numpy 数组进行比较,并返回比较值为 True 的索引位置。 我已经用我自己的容差查找了 np.allclose 以返回 True 的值是否两组数组足够相似。 但我不知道如何返回该索引的位置。我在网上找到了 list.index() 函数,但不知道如何根据我的情况实现代码

例如,我有 2 个列表 A 和 B。A 中有 500 多个 numpy 数组索引。和 B 一个数组。当我将 B 与 A 进行比较时,我可以使用 np.allclose() 函数返回一个布尔值。但我也想知道在 A 的列表中的哪个位置,np.allclose() 返回 True。

我希望这个例子足够清楚:D

如果有人可以提供帮助,那就太好了。 谢谢

【问题讨论】:

  • np.allclose 返回一个 True/False 答案。你是说 np.isclose 吗?
  • np.isclose 将逐个元素比较该数组中的元素并返回该元素的单独 T/F。我不需要那么精确让我再举一个例子,以防我之前的例子不清楚
  • 让我再举一个例子,以防我之前的例子不清楚列表 A 有 500 多个索引。每个索引都有一组 numpy 数组。 A = [[1 1, 2 2] [3 3, 4 4] ...... [n n n+1 n+1]] 所以如果我打印(A[0]),我将有 [1 1 , 2 2] 等等 B 有一组 numpy 数组 B = [10.22 10.221] 所以当我使用 np.allclose(A, B, rtol, atol) 时,它会返回类似这样的 False False .... .... True False False 如何返回 True 值出现的位置

标签: python arrays numpy


【解决方案1】:

np.nonzero(也称为np.where)给出数组(或列表)的 True 元素的索引:

In [4]: np.nonzero([False, False, True, False, False])
Out[4]: (array([2]),)

关于使用np.where 这种形式的问题有很多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多