信不信由你,在分析我当前的代码之后,Numpy数组反转的重复操作消耗了大量的运行时间.我现在拥有的是常见的基于视图的方法:

reversed_arr = arr[::-1]

有没有其他更有效率的方法,或者这只是我痴迷于不切实际的麻木表现而产生的错觉?

推荐答案

创建reversed_arr时,即在原始数组中创建视图.然后可以更改原始数组,视图将更新以反映更改.

您创建视图的频率是否超过了需要?你应该能够做到以下几点:

arr = np.array(some_sequence)
reversed_arr = arr[::-1]

do_something(arr)
look_at(reversed_arr)
do_something_else(arr)
look_at(reversed_arr)

我不是麻木专家,但这似乎是用麻木做事情最快的方法.如果这是你已经在做的事情,我认为你不能改进它.

附言:这里有很多关于numpy观点的讨论:

View onto a numpy array?

Python相关问答推荐

自定义新元未更新参数

在Windows上启动新Python项目的正确步骤顺序

Tkinter滑动条标签.我不确定如何删除滑动块标签或更改其文本

使用多个性能指标执行循环特征消除

如何在图片中找到这个化学测试条?OpenCV精明边缘检测不会绘制边界框

将jit与numpy linSpace函数一起使用时出错

max_of_three使用First_select、second_select、

通过Selenium从页面获取所有H2元素

如何将多进程池声明为变量并将其导入到另一个Python文件

部分视图的DataFrame

形状弃用警告与组合多边形和多边形如何解决

计算天数

ruamel.yaml dump:如何阻止map标量值被移动到一个新的缩进行?

Python日志(log)模块如何在将消息发送到父日志(log)记录器之前向消息添加类实例变量

我对这个简单的异步者的例子有什么错误的理解吗?

查看pandas字符列是否在字符串列中

Tensorflow tokenizer问题.num_words到底做了什么?

在极点中读取、扫描和接收有什么不同?

从嵌套极轴列的列表中删除元素

仅使用预先计算的排序获取排序元素