块矩阵乘以不同的列

时间:2018-11-08 16:09:39

标签: python 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.])

2 个答案:

答案 0 :(得分:2)

使用numpy索引和numpy.prodidx可以是array中任意数量的列:

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

array([  4,  40, 108])

也等效:

x[:, idx].prod(1)

答案 1 :(得分:1)

您可以将列相乘,因为numpy乘法是逐元素的:

x[:, 0] * x[:, 3]

返回

array([  4,  40, 108])