乘以不同大小的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])
尽快运行非常重要。
使用这些输入(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 = 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]