比较不同形状的numpy数组

3
我有两个 numpy 数组,一个形状为 (4,4),另一个形状为 (9,4)。
matrix1 = array([[ 72.        ,  72.        ,  72.        ,  72.        ],
       [ 72.00396729,  72.00396729,  72.00396729,  72.00396729],
       [596.29998779, 596.29998779, 596.29998779, 596.29998779],
       [708.83398438, 708.83398438, 708.83398438, 708.83398438]])

matrix2 = array([[ 72.02400208,  77.68997192, 115.6057663 , 105.64997101],
       [120.98195648,  77.68997192, 247.19802856, 105.64997101],
       [252.6330719 ,  77.68997192, 337.25634766, 105.64997101],
       [342.63256836,  77.68997192, 365.60125732, 105.64997101],
       [ 72.02400208, 113.53997803, 189.65515137, 149.53997803],
       [196.87202454, 113.53997803, 308.13119507, 149.53997803],
       [315.3480835 , 113.53997803, 405.77023315, 149.53997803],
       [412.86999512, 113.53997803, 482.0453186 , 149.53997803],
       [ 72.02400208, 155.81002808, 108.98254395, 183.77003479]])

我需要比较矩阵2的所有行与矩阵1的每一行。如何在不循环矩阵1元素的情况下完成?


逐元素比较行吗? - amzon-ex
1个回答

4
如果涉及到行的逐元素比较,请参考这个示例:
# Generate sample arrays
a = np.random.randint(0, 5, size = (4, 3))
b = np.random.randint(-1, 6, size = (5, 3))

# Compare
a == b[:, None]

最后一行对此进行比较。输出数组的形状将为(num_of_b_rows, num_of_a_rows, common_num_of_cols):在这种情况下,(5,4,3)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接