arrays - 数组中数组的和

标签 arrays python-2.7 numpy sum

有没有一种快速的方法来做到这一点;

import numpy as np
a=np.array([1,2,3,4])
b=np.array([1,2])
c=np.array([a,b])
result=magic(c)

其中 magic() 是我想要的功能,结果应该是 np.array([10,3])numpy.array 包含每个输入数组的总和。

最佳答案

以下是建议(答案和评论)及其时间安排的汇编:

import numpy as np

c = np.array([np.random.rand(np.random.randint(1, 300)) for i in range(50)])

def oliver(arr):
    res = np.empty_like(arr)
    for enu, subarr in enumerate(arr):
        res[enu] = np.sum(subarr)
    return res

def reut(arr):
    return np.array([a.sum() for a in arr])

def hpaulj(arr):
    d = np.concatenate(arr)
    l = map(len, arr)
    i = np.cumsum(l) - l
    return np.add.reduceat(d, i)

以及他们的时代:

In [94]: timeit oliver(c)
1000 loops, best of 3: 457 µs per loop

In [95]: timeit reut(c)
1000 loops, best of 3: 317 µs per loop

In [96]: timeit hpaulj(c)
10000 loops, best of 3: 94.4 µs per loop

实现@hpaulj有点棘手,但我想我明白了(如果你使用concatenate而不是hstack,它是最快的)

关于arrays - 数组中数组的和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32662129/

相关文章:

javascript - postman 从 JSON 中获取值,其中使用 javascript 等于数组中的值

java - 此处无法初始化数组

c# - C# 中是否存在所谓的数组类型不匹配异常?

python-2.7 - 如何在谷歌云函数中用python做出http响应

python-2.7 - 无法在 Windows 7 中为 Python 2.7 安装 tensorflow

python - python 中的 Opencv 2.4.3 estimateRigidTransform

c++ - 为什么字符数组不给出无符号结果

python - 是否可以将范围作为变量 "var = k:k+number"

python - Matplotlib:如何绘制列表中的数据,添加两个 y 轴?

python - 动画阻尼振荡器