是否有一种快速简便的方法来从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.])
答案 0 :(得分:2)
使用numpy
索引和numpy.prod
。 idx
可以是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])