Матрица срезов каждые 2 столбца

Я пытаюсь понять, как разрезать матрицу каждые 2 столбца. Например, если у нас есть

A=[[1 2 3 4 5 6];[7 8 9 10 11 12]]

2×6 Matrix{Int64}:
 1  2  3   4   5   6
 7  8  9  10  11  12

то я хотел бы вернуть 3 матрицы, нарезанные каждые 2 столбца, то есть трехмерный массив с 3 матрицами,

2×2×3 Array{Int64, 3}:
[:, :, 1] =
 1  2
 7  8

[:, :, 2] =
 3   4
 9  10

[:, :, 3] =
  5   6
 11  12

Одна вещь, которую я пробовал, - это функция eachslice,

collect(eachslice(A,dims=2))

6-element Vector{SubArray{Int64, 1, Matrix{Int64}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}}:
 [1, 7]
 [2, 8]
 [3, 9]
 [4, 10]
 [5, 11]
 [6, 12]

но это разрезает каждый столбец, но я хочу разрезать каждые два столбца!

Заранее спасибо.

Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
3
0
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это просто переделка. Изменяет общую память (например, представления), поэтому вам следует copy это сделать, если вы хотите, чтобы оно не зависело от оригинала A:

julia> reshape(A, 2, 2, 3)
2×2×3 Array{Int64, 3}:
[:, :, 1] =
 1  2
 7  8

[:, :, 2] =
 3   4
 9  10

[:, :, 3] =
  5   6
 11  12

Но если вы действительно хотите, вы также можете выразить это как индексацию:

julia> A[:, [1:2 3:4 5:6]]
2×2×3 Array{Int64, 3}:
[:, :, 1] =
 1  2
 7  8

[:, :, 2] =
 3   4
 9  10

[:, :, 3] =
  5   6
 11  12

Это идеально, спасибо! Еще не привык к функции изменения формы.

jacobe 06.04.2022 02:20

Другие вопросы по теме