Трансляция через измерение массива

#julia

#Джулия

Вопрос:

Допустим, у меня есть двумерный массив

 a = [1 2 3; 1 2 3]

2×3 Array{Int64,2}:
 1  2  3
 1  2  3
  

и я хотел бы sum вдоль измерения, например, вдоль измерения 1, дающего

 [2, 4, 6]
  

или по измерению 2, приводящему

 [6, 6]
  

Как это делается правильно в Julia ?

Ответ №1:

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

julia> sum(a; dims=2)
2×1 Array{Int64,2}:
 6
 6
  

Вы можете удалить измерение с vec помощью .

Ответ №2:

То, что предлагает Цзюнь Тянь, является стандартным способом сделать это. Однако также стоит знать более общую схему:

 julia> sum.(eachrow(a))
2-element Array{Int64,1}:
 6
 6

julia> sum.(eachcol(a))
3-element Array{Int64,1}:
 2
 4
 6
  

В этом случае sum может быть заменена любой функцией агрегирования коллекции.