numpy数组的元素乘法

时间:2015-03-11 13:19:26

标签: python-2.7 python-3.x numpy

基于一个数组中的元素将numpy数组的元素相乘。

import numpy as np
x = np.random.randint(-10,10, size=(12, 4))
x = np.insert(arr=x, values=np.random.choice([1,2,3,4], 12), obj=8, axis=1)

如果这些行在最后一列中具有相同的元素,我如何将x [:,4]行的元素相乘。

1 个答案:

答案 0 :(得分:2)

您可以使用itertools.groupby根据第4个元素对行进行分组,然后在np.multiply函数中使用reduce来计算multiply

>>> from operator import itemgetter
>>> from itertools import groupby
>>> [reduce(lambda x,y:np.multiply(x,y),g) for _,g in groupby(sorted(x,key=itemgetter(3)),itemgetter(3))]
[array([ 0, -7, -5, -7]), array([   0, -588, 1296,    1]), array([ 9, -3, -1,  0]), array([ 56,  -8, -60,   9]), array([ -9,  -3, -10,   6]), array([-72,  -9, -15,  64]), array([ 5, -8, -5,  9])]