julia - 滚动阵列,均匀圆形移位

标签 julia

给定一个数组:
arr = [1, 2, 3, 4, 5]
我想转移所有元素。
shift!(arr, 2) => [4, 5, 1, 2, 3]
在 Python 中,这是通过 Numpy 使用 numpy.roll 完成的。 .这是如何在 Julia 中完成的?

最佳答案

无需自己实现,有内置函数

julia> circshift(arr, 2)  
5-element Array{Int64,1}: 
 4                        
 5                        
 1                        
 2                        
 3        

它也(稍微)比 roll2 更有效上面建议:
julia> @btime circshift($arr, 2);
  68.563 ns (1 allocation: 128 bytes)

julia> @btime roll2($arr, 2);
  70.605 ns (4 allocations: 256 bytes)

但是请注意,建议的功能都没有就地运行。他们都创建了一个新数组。还有内置的circshift!(dest, src, shift)它在预分配的 dest 中运行(但是,必须是 != src )。

关于julia - 滚动阵列,均匀圆形移位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53787042/

相关文章:

julia - 在函数内解压字典条目

import - 是否可以在 Julia 中直接导入宏?

http - 诱导 Julia 任务完成

statistics - Julia 中等方差的双样本 F 检验

julia - 如何在 Julia 中对数字进行因式分解?

file - 在 Julia 中打开具有格式化变量名称的文件

julia - 如何找到非泛型函数的来源?

reflection - 如何检查 Julia 0.6 中给定的 `Method` 对象是否接受给定的 `Tuple` 类型?

task - Julia:在协程(任务)之间传递数据

julia - Julia 中的参数复合类型内部构造函数 : Why is `where {T}` necessary?