Python 将不同大小的numpy数组相乘

Python 将不同大小的numpy数组相乘,python,arrays,numpy,array-broadcasting,Python,Arrays,Numpy,Array Broadcasting,假设我有: 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]) 这一点非常重要。通过这些输入(x和y),您可以告诉numpy向输出中添加一个新轴,然后您将能够获得一个结果矩阵,其中每对x,y: numpy.cos(x[:, numpy.newaxis])*numpy.cos(y) 在这种情况下给出

假设我有:

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])
这一点非常重要。通过这些输入(
x
y
),您可以告诉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]

输出应该是什么样子的?两个数组的大小与
x
相同,一个数组是
(3,2)
,还是
(2,3)
形状?或者别的什么?我不确定我是否理解你的问题,但我认为你只是在寻找这样的东西:
numpy.transpose(numpy.matrix(numpy.cos(y))*numpy.cos(x)