【问题标题】:Elemen-wise multiplication of numpy arraynumpy数组的元素乘法
【发布时间】:2015-05-13 07:21:18
【问题描述】:

基于一个数组中的元素将 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] 行元素相乘。

【问题讨论】:

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


    【解决方案1】:

    您可以使用itertools.groupby 根据第四个元素对行进行分组,然后在reduce 函数中使用np.multiply 来计算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])]
    

    【讨论】:

      猜你喜欢
      • 2019-03-31
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      • 2018-12-23
      • 2019-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多