python C numpy.array的部分内容
发布时间:2023-12-17 04:33:45 所属栏目:Python 来源:DaWei
导读: 假设我有以下数组:
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,依此类推每一行.我
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,依此类推每一行.我
假设我有以下数组: 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)但感觉不必要的复杂,有更好的方法吗?也许内置? 解决方法 当我必须做这种事情时,我更喜欢将2D阵列重塑为3D阵列,然后使用np.sum折叠额外的维度.将其推广到n维数组,你可以这样做: 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 – 分类:使用sklearn进行PCA和逻辑回归
- python – 根据上一个和下一个元素将元素插入到列表中
- python C 如何使用扭曲的raw_input?
- python-2.7 – 如何在python中使用webdriver选择下拉列表值
- 是否有一种标准方法来声明不支持旧的python版本?
- 为什么python-cgi在unicode上失败?
- python exceptions.UnicodeDecodeError:’ascii’编解码器
- python C 如何访问List元素
- python – Kivy – 屏幕管理器 – 访问其他类中的属性
- python – 浏览器和wget加载JPEG不同?
推荐文章
站长推荐