如何将第一个元素与 numpy 中的其他元素进行比较?

How to compare the first element with others in numpy?

我正在尝试获取一个数组,其中显示每个元素是否等于每一行中的第一个元素:

a = np.array([[1,2,1],[3,3,3],[2,0,1]])
b = a[:,0] == a[:]
print(b)

第一行应检查 1 == 1、1 == 2、1 == 1。

第二行应检查 3 == 3、3 == 3、3 == 3。

第 3 行应检查 2 == 2、2 == 0、2 == 1。

但是输出错误:

array([[ True, False, False],
       [False,  True, False],
       [False, False, False]])

应该是:

array([[ True, False,  True],
       [ True,  True,  True],
       [ True, False, False]])

现在我做错了什么以及如何获得正确的结果?

要广播,您需要重塑以添加额外的维度:

a[:,0,None] == a

输出:

array([[ True, False,  True],
       [ True,  True,  True],
       [ True, False, False]])