【问题标题】:Apply condition throughout multiple python arrays在多个 python 数组中应用条件
【发布时间】:2016-08-13 19:34:56
【问题描述】:

我有许多相同长度的数组:

a = [3,7,5,2,7]
b = [3,4,1,6,8]
c = [2,3,7,8,3]
d = [1,3,5,6,4]
e = [2,6,5,1,7]

我的条件是 x > 2。我需要的是一个最终数组,检查条件是否适用于所有数组的每个位置。

结果是:

[False, True, False, False, True]

甚至更好:

[0, 1, 0, 0, 1]

对不起,如果这很简单,我搜索了很长时间,但只找到了相关的主题,但没有一个完全回答这个问题。

【问题讨论】:

    标签: python-2.7 numpy multidimensional-array


    【解决方案1】:

    将这些1D 输入数组堆叠为2D 数组与np.vstack 的行,执行比较,然后沿第一个轴使用np.all。因此,实现将是 -

    (np.vstack((a,b,c,d,e))>2).all(axis=0)
    

    示例运行 -

    >>> np.vstack((a,b,c,d,e)) # Stack as a 2D array
    array([[3, 7, 5, 2, 7],
           [3, 4, 1, 6, 8],
           [2, 3, 7, 8, 3],
           [1, 3, 5, 6, 4],
           [2, 6, 5, 1, 7]])
    >>> np.vstack((a,b,c,d,e))>2
    array([[ True,  True,  True, False,  True],
           [ True,  True, False,  True,  True],
           [False,  True,  True,  True,  True],
           [False,  True,  True,  True,  True],
           [False,  True,  True, False,  True]], dtype=bool)
    >>> (np.vstack((a,b,c,d,e))>2).all(axis=0)
    array([False,  True, False, False,  True], dtype=bool)
    

    【讨论】:

      猜你喜欢
      • 2016-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多