在Julia 1.0中,当昏暗进入暮色区域时,总和会发生什么变化?

在Julia 1.0中,当昏暗进入暮色区域时,总和会发生什么变化?,julia,Julia,现在,当我将参数dims设置为一个元组时,会发生什么?julia 1.0的官方文档没有给我任何线索 julia> [1 2; 3 4] 2×2 Array{Int64,2}: 1 2 3 4 julia> sum([1 2; 3 4]) 10 julia> sum([1 2; 3 4],dims=1) 1×2 Array{Int64,2}: 4 6 julia> sum([1 2; 3 4],dims=2) 2×1 Array{Int64,2}:

现在,当我将参数dims设置为一个元组时,会发生什么?julia 1.0的官方文档没有给我任何线索

julia> [1 2; 3 4]
2×2 Array{Int64,2}:
 1  2
 3  4

julia> sum([1 2; 3 4]) 
10  

julia> sum([1 2; 3 4],dims=1)
1×2 Array{Int64,2}:
 4  6

julia> sum([1 2; 3 4],dims=2)
2×1 Array{Int64,2}:
 3   
 7   

看起来它正在对元组做一些事情,原因是
dims
通知应该减少哪些维度。此外:

  • Julia忽略大于数组维数的正索引
  • 副本无效
  • 参数的顺序没有影响
  • 只有积极的论点才被接受
  • 因此:

    • (1,1)
      1
      相同
    • (2,1)
      (1,2
      )相同
    • (3,4)
      与传递no
      dims
      参数相同
    • (1,3,4)
      1
      相同
    • 0
      是一个错误

    该机制是在Base中的函数
    reduced_index
    中实现的(它不导出,但您可以查找实现)。

    还请注意,这些规则是有意义的。例如,如果编写
    sum([12;34],dims=(2,2))
    ,则结果与
    sum(sum([12;34],dims=2),dims=2)
    相同。
    julia> sum([1 2; 3 4],dims=(1,1))
    1×2 Array{Int64,2}:
     4  6
    
    julia> sum([1 2; 3 4],dims=(1,2))
    1×1 Array{Int64,2}:
     10  
    
    julia> sum([1 2; 3 4],dims=(2,1))
    1×1 Array{Int64,2}:
     10  
    
    julia> sum([1 2; 3 4],dims=(2,2))
    2×1 Array{Int64,2}:
     3
     7
    
    julia> sum([1 2; 3 4],dims=(3,4))
    2×2 Array{Int64,2}:
     1  2
     3  4