python sum 数组原理_Python - Sum 4D数组
unutbu..
5
你可以使用einsum:
In [21]: np.einsum('ijkl->kl', M)
Out[21]:
array([[32, 8],
[16, 8]])
其他选项包括将前两个轴重新整形为一个轴,然后调用sum:
In [24]: M.reshape(-1, 2, 2).sum(axis=0)
Out[24]:
array([[32, 8],
[16, 8]])
或者调用sum方法两次:
In [26]: M.sum(axis=0).sum(axis=0)
Out[26]:
array([[32, 8],
[16, 8]])
但使用np.einsum速度更快:
In [22]: %timeit np.einsum('ijkl->kl', M)
100000 loops, best of 3: 2.42 µs per loop
In [25]: %timeit M.reshape(-1, 2, 2).sum(axis=0)
100000 loops, best of 3: 5.69 µs per loop
In [43]: %timeit np.sum(M, axis=(0,1))
100000 loops, best of 3: 6.08 µs per loop
In [33]: %timeit sum(sum(M))
100000 loops, best of 3: 8.18 µs per loop
In [27]: %timeit M.sum(axis=0).sum(axis=0)
100000 loops, best of 3: 9.83 µs per loop
警告:由于许多因素(OS,NumPy版本,NumPy库,硬件等),timeit基准测试可能会有很大差异.各种方法的相对性能有时也取决于M的大小.因此,在M更接近实际用例的情况下,自己做基准测试是值得的.
例如,对于稍大的数组M,调用该sum方法两次可能是最快的:
In [34]: M = np.random.random((100,100,2,2))
In [37]: %timeit M.sum(axis=0).sum(axis=0)
10000 loops, best of 3: 59.9 µs per loop
In [39]: %timeit np.einsum('ijkl->kl', M)
10000 loops, best of 3: 99 µs per loop
In [40]: %timeit np.sum(M, axis=(0,1))
10000 loops, best of 3: 182 µs per loop
In [36]: %timeit M.reshape(-1, 2, 2).sum(axis=0)
10000 loops, best of 3: 184 µs per loop
In [38]: %timeit sum(sum(M))
1000 loops, best of 3: 202 µs per loop
python sum 数组原理_Python - Sum 4D数组相关推荐
- python sum 数组原理_Python – Sum 4D数组
你可以使用 einsum: In [21]: np.einsum('ijkl->kl', M) Out[21]: array([[32, 8], [16, 8]]) 其他选项包括将前两个轴重新整 ...
- python类的数组属性_Python学习之数组类型一:
Python学习之数组类型一: Numpy中的向量与矩阵: 1.创建: 向量.矩阵均由array函数创建,区别在于向量是v=array( [逗号分隔的元素] ), 矩阵是M=array( [[ ]] ...
- python numpy数组切片_python中numpy数组切片实验解释
print(a[0::2]).a[::2].[:,2].[1:,-1:].a[::-1].[ : n].[m : ].[-1].[:-1].[1:]等的含义 文章目录 一维数组(冒号:) 1.一个参数 ...
- python 多维数组去重_python多维数组运算-女性时尚流行美容健康娱乐mv-ida网
自动秒收录 如何加入 (当前页) 购买本站源码 自媒体交流 查询是否收录 查询收录 × 快速加入 只要做上本站的友情链接,并在您站上点击一次,就免人工自动收录!并自动排在本站第一位. 本站已收录286 ...
- python二维数组表示_python中二维数组中的数如何表达
python二维数组如何挑选出一定范围的数值? 比如说有一个二维数组 13.1 13.2 13.3 13.4 15.5 15.0 45.2 22.3 22.3 3 [j for i in a for ...
- python 数组打包_Python:打包多字节数组
这是前一个问题的延续.我收到了更多的信件,但我有点困惑,不知道该怎么做.在 我的目的是获取几个不同长度的字节数组,并通过UDP将它们发送到另一台机器上的进程.UDP我可以做,但是发送字节数组给我带来了 ...
- python程序的原理_Python程序的执行原理(转)
1. 过程概述 Python先把代码(.py文件)编译成字节码,交给字节码虚拟机,然后虚拟机一条一条执行字节码指令,从而完成程序的执行. 2. 字节码 字节码在Python虚拟机程序里对应的是PyCo ...
- 简述python程序执行原理_Python程序的执行原理(1)
test.py的指令序列 func函数的指令序列 第一列表示以下几个指令在py文件中的行号; 第二列是该指令在指令序列co_code里的偏移量; 第三列是指令opcode的名称,分为有操作数和无操作数 ...
- python解析器原理_Python程序运行原理图文解析
本文研究的主要是Python程序运行原理,具体介绍如下. 编译型语言(C语言为例) 动态型语言 一个程序是如何运行起来的?比如下面的代码 #othermodule.py def add(a, b): ...
最新文章
- usr share里没有mysql_无法在ubuntu 12.04上安装mysql,找不到消息文件’/usr/share/mysql/errmsg.sys’...
- Spring使用环境变量控制配置文件加载(转)
- java:接口和抽象
- 自从用了这几个网站后,linux下的开发(使用)更加简单化
- Physically Based Specular for Artists
- IIS32位,64位模式下切换
- 五款可以取代 Slack 的开源工具
- mac新手入门:从启动台Launchpad中完全删除应用程序
- PyQt5多线程刷新界面防假死
- LINUX更改图标后生效
- 搞明白“清算-结算”的二级制
- NFine框架因新增页面而显示无法链接资源
- Alter table alter |change |modify 区别
- 一篇文章教你从入门到精通 Google 指纹验证功能
- xRM 扩展性及产品组合
- 计算机存储程序错误检验,内存错误怎么办?内存错误的修复与检测方法介绍
- DBCO高分子PEG_DBCO-PEG-Lipoic COOH_二苯并环辛炔-聚乙二醇-硫辛酸
- MAML:User Diverse Preference Modeling by Multimodal AttentiveMetric Learning
- 中国-8月两轮车市场加速增长(+7%)
- 大学物理实验计算机仿真 光电效应,光电效应仿真实验的教学探究
热门文章
- jQuery调用WCF需要注意的一些问题
- Innodb隔离级别的实现原理
- PHP执行一个http请求
- win10无法检测java_Javac 在windows10系统不识别
- stm8s003程序跑飞_微信小程序只玩跳一跳?OUT啦!带你玩更好玩的微信小游戏!...
- android xe 调用 java,Delphi XE6 for Android 让手机震动(调用Java的函数)
- signature=a7ab3f52fd3143e911ffec68c5ce32d7,2019年强网杯crypto部分题解
- mysql rpm conflict_解决centos7 yum安装MySQL rpm包出现conflict problem
- Centos 利用yum源安装 nginx stream模块
- 【spring boot】 禁用/关闭数据源/DataSource