信不信由你,在分析我当前的代码之后,Numpy数组反转的重复操作消耗了大量的运行时间.我现在拥有的是常见的基于视图的方法:
reversed_arr = arr[::-1]
有没有其他更有效率的方法,或者这只是我痴迷于不切实际的麻木表现而产生的错觉?
信不信由你,在分析我当前的代码之后,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观点的讨论: