乘以不同大小的numpy数组

multiplying numpy arrays of different size

假设我有:

x = numpy.array([1,2,3])
y = numpy.array([1,2])

我想要的是一种矢量化且高效的方式:

numpy.cos(x)*numpy.cos(y[0])
numpy.cos(x)*numpy.cos(y[1])

尽快运行非常重要。

使用这些输入(xy),您可以告诉 numpy 在输出中添加一个新轴,然后您将能够获得结果矩阵,其中每一对 x, y 被评估:

numpy.cos(x[:, numpy.newaxis])*numpy.cos(y)

在这种情况下给予:

#        y[0]        y[1]
array([[ 0.29192658, -0.2248451 ],   # x[0]
       [-0.2248451 ,  0.17317819],   # x[1]
       [-0.53489523,  0.41198225]])  # x[2]