【发布时间】:2020-04-19 00:58:30
【问题描述】:
numpy 中是否有一个现有函数,它接受 2 个 numpy 数组 (x,y) 并为每个 i,j (x[i]>y[j]) 返回一个布尔矩阵
例如,让 x = [3, 4 ,5] 和 y = [1, 2, 3] 我想要
res = [ [True, True, False],
[True, True, True],
[True, True, True] ]
【问题讨论】:
numpy 中是否有一个现有函数,它接受 2 个 numpy 数组 (x,y) 并为每个 i,j (x[i]>y[j]) 返回一个布尔矩阵
例如,让 x = [3, 4 ,5] 和 y = [1, 2, 3] 我想要
res = [ [True, True, False],
[True, True, True],
[True, True, True] ]
【问题讨论】:
您在这里不需要函数,如果您正确调整数组的形状,只需数组广播就可以工作。我认为您想要这种方法,它使x 成为列向量,y 成为行向量:
x = np.array([3,4,5])
y = np.array([1,2,3])
res = x[:,None] > y[None,:]
【讨论】:
使用 numpy,您可以将 x 和 y 列表转换为数组,如下所示:x = np.array([3,4,5]) y=np.array([1,2,3]),然后 numpy 只需执行以下操作即可进行元素比较:print(x > y)
【讨论】: