【问题标题】:multidimensional numpy array __eq__多维 numpy 数组 __eq__
【发布时间】:2012-05-22 08:47:11
【问题描述】:

我有一个二维的np.array 喜欢

x = np.array([[1,2], [4,5], [4,6], [5,4], [4,5]])

现在我想要 x 等于 [4,5] (-> [1, 4]) 的索引。运算符== 以不同的方式工作:

x == [4,5]
array([[False, False],
       [ True,  True],
       [ True, False],
       [False, False],
       [ True,  True]], dtype=bool)

但我想要[False, True, False, False, True] 之类的东西。可以and吗?

通常数组非常大,我必须做很多次,所以我需要一个非常快速的方法。

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:

    这应该是 numpy 方式:

    x = np.array([[1,2], [4,5], [4,6], [5,4], [4,5]])
    (x == [4,5]).all(1)
    
    #out: array([False,  True, False, False,  True], dtype=bool)
    

    【讨论】:

      【解决方案2】:

      之前没有使用 numpy 的经验,但这适用于标准数组:

      x = [[1, 2], [4, 5], [4, 6], [5, 4], [4, 5]]
      
      indices = [i for i, v in enumerate(x) if v == [4, 5]]
      # gives [1, 4]
      
      matches = [v == [4, 5] for v in x]
      # gives [False, True, False, False, True]
      

      【讨论】:

      • 对不起,我忘了说我想要一个 numpy 解决方案
      猜你喜欢
      • 1970-01-01
      • 2020-10-02
      • 1970-01-01
      • 2022-07-12
      • 2011-11-16
      • 2016-01-28
      • 2021-11-23
      • 2017-12-18
      相关资源
      最近更新 更多