您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – numpy.array的部分内容

5b51 2022/1/14 8:22:30 python 字数 1604 阅读 565 来源 www.jb51.cc/python

假设我有以下数组: a = np.array([[1,2,3,4,5,6], [7,8,9,10,11,12], [3,5,6,7,8,9]]) 我想对第一行的前两个值求和:1 2 = 3,然后是下两个值:3 4 = 7,然后5 6 = 11,依此类推每一行.我想要的输出是这样的: array([[ 3, 7, 11], [

概述

a = np.array([[1,2,3,4,5,6],[7,8,9,10,11,12],[3,6,7,9]])

我想对第一行的前两个值求和:1 2 = 3,然后是下两个值:3 4 = 7,然后5 6 = 11,依此类推每一行.我想要的输出是这样的:

array([[ 3,11],[15,19,23],[ 8,13,17]])

我有以下解决方案:

def sum_chunks(x,chunk_size):
    rows,cols = x.shape
    x = x.reshape(x.size / chunk_size,chunk_size)
    return x.sum(axis=1).reshape(rows,cols/chunk_size)

但感觉不必要的复杂,有更好的方法吗?也许内置?

def sum_chunk(x,chunk_size,axis=-1):
    shape = x.shape
    if axis < 0:
        axis += x.ndim
    shape = shape[:axis] + (-1,chunk_size) + shape[axis+1:]
    x = x.reshape(shape)
    return x.sum(axis=axis+1)

>>> a = np.arange(24).reshape(4,6)
>>> a
array([[ 0,1,5],[ 6,[12,14,15,16,17],[18,20,21,22,23]])
>>> sum_chunk(a,2)
array([[ 1,9],[13,17,21],[25,29,33],[37,41,45]])
>>> sum_chunk(a,axis=0)
array([[ 6,12,16],[30,32,34,36,38,40]])

总结

以上是编程之家为你收集整理的python – numpy.array的部分内容全部内容,希望文章能够帮你解决python – numpy.array的部分内容所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶