首页 > 解决方案 > Numpy矩阵乘以不同的列

问题描述

有没有一种快速简单的方法可以从 numpy 矩阵中乘以多列?我正在使用下面显示的代码,但我想知道 numpy 是否提供直接方法。

x = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
temp = np.ones(3)
for ind in [0,3]:
    temp *= x[:,ind]
print(temp)

array([  4.,  40., 108.])

标签: pythonnumpy

解决方案


使用numpy索引和numpy.prod. idx可以是您的任意数量的列array

>>> idx = [0, 3]
>>> np.prod(x[:, idx], axis=1)

array([  4,  40, 108])

也等价:

x[:, idx].prod(1)

推荐阅读