【问题标题】:Numpy. Compare all vector row in one array with every other one in the same array麻木。将一个数组中的所有向量行与同一数组中的所有其他向量行进行比较
【发布时间】:2017-12-29 00:31:18
【问题描述】:

我有一个如下的 numpy 数组:

a= array([[2, 3],
   [0, 2]])

并希望使用 np.greater 将每一行中的“向量”与其他行进行比较,以便:

array([[False, False],  <--- [2,3] compared with [2,3]
     [True, True]],     <--- [2,3] compared with [0,2]
     [[False, False],   <--- [0,2] compared with [2,3] 
     [False, False]])   <--- [0,2] compared with [0,2]

但如果我尝试r=(np.greater.outer(a,a)),它会将a 中的每个数字与a 中的所有其他数字进行比较,因此:

array([[[[False, False],  <--- 2 compared with a
     [ True, False]],     

    [[ True, False],      <--- 3 compared with a
     [ True,  True]]],


   [[[False, False],      <--- 0 compared with a
     [False, False]],

    [[False, False],      <--- 2 compared with a 
     [ True, False]]]], dtype=bool)

¿我怎样才能使外部比较行明智而不是元素明智?

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    试试这个:

    a[:,np.newaxis] > a
    

    和这个更明确的代码是一样的:

    a[:,np.newaxis,:] > a[np.newaxis,:,:]
    

    https://stackoverflow.com/a/16500609/4323的帽子提示

    具体功能:The use of Python numpy.newaxis

    【讨论】:

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