2

假设我有:

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])

尽可能快地运行非常重要。

4

1 回答 1

3

使用这些输入 (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]
于 2015-10-13T00:13:25.520 回答