使用两者的最小值从两个数组创建矩阵

Creating Matrix from Two Arrays using Minimum of both

假设我有以下内容(在 python 3.7 中)

x = np.array([2,4,6])
y = np.array([3,5])

如何获取输出

np.array([[2, 2],
          [3, 4],
          [3, 5]])

基本上利用这两个数组作为我的新矩阵的“轴”,并且对于新矩阵的每个条目,取 min(row, col),不使用任何循环。

函数np.meshgrid会将这两个输入变量扩展为二维数组(返回一个2元素列表);然后,您可以使用 np.minimum 获得 element-by-element 最小值:

np.meshgrid(y,x)

returns:

[
  array([[3, 5],
         [3, 5],
         [3, 5]]),
  array([[2, 2],
         [4, 4],
         [6, 6]])
]

和:

np.minimum(*np.meshgrid(y,x))

returns:

array([[2, 2],
       [3, 4],
       [3, 5]])

(此处使用 * 将列表扩展为 np.minimum 的两个单独参数。)