python数组操作加法_Numpy数组索引和/或加法似乎是
我一直在研究numpy数组的基准测试,因为当我试图在脚本中用numpy数组替换python数组时,得到的结果比预期的要慢。在
我知道我错过了什么,我希望有人能澄清我的无知。在
我创建了两个函数并计时NUM_ITERATIONS = 1000
def np_array_addition():
np_array = np.array([1, 2])
for x in xrange(NUM_ITERATIONS):
np_array[0] += x
np_array[1] += x
def py_array_addition():
py_array = [1, 2]
for x in xrange(NUM_ITERATIONS):
py_array[0] += x
py_array[1] += x
结果:
^{pr2}$
什么给予?是什么导致了经济的大幅放缓?我想如果我使用静态大小的数组,numpy的速度至少是相同的。在
谢谢!在
更新:
numpy数组访问速度慢一直困扰着我,我想“嘿,它们只是内存中的数组,对吧?辛顿应该解决这个问题!”在
它做到了。这是我修改后的基准import numpy as np
cimport numpy as np
ctypedef np.int_t DTYPE_t
NUM_ITERATIONS = 200000
def np_array_assignment():
cdef np.ndarray[DTYPE_t, ndim=1] np_array = np.array([1, 2])
for x in xrange(NUM_ITERATIONS):
np_array[0] += 1
np_array[1] += 1
def py_array_assignment():
py_array = [1, 2]
for x in xrange(NUM_ITERATIONS):
py_array[0] += 1
py_array[1] += 1
我将np_array重新定义为cdef np.ndarray[DTYPE_t, ndim=1]print(timeit(py_array_assignment, number=3))
# 0.03459
print(timeit(np_array_assignment, number=3))
# 0.00755
这是因为python也在优化python函数。纯python中python函数的计时是print(timeit(py_array_assignment, number=3))
# 0.12510
17倍加速。当然,这是个愚蠢的例子,但我认为它很有教育意义。在
python数组操作加法_Numpy数组索引和/或加法似乎是相关推荐
- python numpy矩阵切片_Numpy数组的索引与切片和变形拼接分裂
1.概述 今天我们来讲一下Numpy数组的索引与切片,numpy数组的索引与切片和Python中的切片与索引的作用相同,可以快速的取出数据,进行下一步的运用或者查看,但是两种切片还有一些不同的地方.另 ...
- python 矩阵列拼接_numpy数组拼接简单示例
NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成: ·实际的数据 ·描述这些数据的元数据 大部分操作仅针对于元数据,而不改变底层实际的数据. 关于NumPy数组有几点必需了解的: ...
- Python数组操作将一维数组变成二维数组
一.问题 我们在进行数组操作的时候会遇到将一个低维的数组变成一个高维的素数组 二.解决 第一种方法 基本思路就是将低维数组进行等长的循环,在第一次为零的情况下,需要添加一个[]数组,原因是将它的基本框 ...
- python构造数组并命名_Numpy数组追加命名列
np.core.records在创建和操作结构化数组方面有一些很好的函数,但是知道如何从头开始构造这样的数组也是很好的.在 您的genfromtxt已从一个包含简单字符串值列的文件中读取.我可以用字符 ...
- B10_NumPy数组操作、修改数组形状、翻转数组、修改数组维度、连接数组、分割数组、数组元素的添加与删除
NumPy数组操作 Numpy 中包含了一些函数用于处理数组,大概可分为以下几类: 修改数组形状 翻转数组 修改数组维度 连接数组 分割数组 数组元素的添加与删除 修改数组形状 函数 描述 resha ...
- php的数组操作,PHP的数组操作
1. 初始化 1.1 array()枚举成员 $products = array('Tires', 'Oil', 'Spark Plugs'); $prices = array('Tires' =&g ...
- python对numpy数组求导_NumPy数组计算——python
一.通用函数运算 (一),数组的运算 对于一个数组,可以直接用加+,减-,乘*,除/,逻辑非,指数运算符 **,其结果就是数组里面每一个元素运算的结果. (二),NumPy实现的算术运算符 1.加法运 ...
- python 数组去重复_numpy数组去掉重复的行,保留唯一的行数据
有以下numpy.array数据:>>> original_array # array([[1, 1, 1, 0, 0, 0], [0, 1, 1, 1, 0, 0], [0, 1, ...
- python运算学习之Numpy ------ 数组操作:连接数组、拆分数组 、广播机制、结构化数组、文件贮存与读写、np.where、数组去重...
数组的连接: 1 # 连接数组 2 A = np.zeros((3, 4)) 3 B = np.ones_like(A) 4 print(A, "\n-------分割符--------\n ...
最新文章
- TensorRT-优化-原理
- apache 不执行PHP,显示代码
- HttpClien GetPost
- 小波变换理解:消失矩、支撑长度的理解
- Angular ɵɵelementStart和ɵɵText的工作原理
- python文件编译_编译Python文件
- ELK学习笔记之Logstash详解
- apollo动态切换mysql数据源_log4j2从Apollo初始化配置并可动态变更
- ~~分解质因数法求组合数
- python 使用迭代来创建集合
- 怎么样更好的做好站内的优化
- 【Firewalld(Iptables)】
- CAD一键统计所有线段长度
- 怎样注册完申请个人电子邮箱?2022邮箱号码大全速看
- 【loadrunner】——利用loadrunner进行压力测试
- Eureka注册中心配置登录验证
- 2022最新200道软件测试面试题
- 短信群发的频率应该是多少
- 非常值得欣赏的15个HTML5网站
- 赫赫大名的A*寻路算法(vb.net版本)