Я создаю многомерный массив разных размеров, хотя все они будут иметь четное число столбцов.
>> import numpy as np
>> x = np.arange(24).reshape((3,8))
Что приводит к:
array([[ 0, 1, 2, 3, 4, 5, 6, 7],
[ 8, 9, 10, 11, 12, 13, 14, 15],
[16, 17, 18, 19, 20, 21, 22, 23]])
Я могу нарезать на кусочки и получить первый столбец в массиве:
>> newarr = x[0:,0:2]
array([[ 0, 1],
[ 8, 9],
[16, 17]])
Однако я хочу иметь один массив, который представляет собой просто список столбцов, в которых столбцы 1 и 2 вместе, 3 и 4 вместе и т. Д. Например:
array([[[ 0, 1],
[ 8, 9],
[16, 17]],
[[ 2, 3],
[10, 11],
[18, 19]],
etc....]
)
Этот код ниже работает, но он неуклюжий и мои массивы не все одинаковые. Некоторые массивы имеют 16 столбцов, некоторые имеют 34, некоторые имеют 50 и т. Д.
>> newarr = [x[0:,0:2]]+[x[0:,2:4]]+[x[0:,4:6]]
[array([[ 0, 1],
[ 8, 9],
[16, 17]]), array([[ 2, 3],
[10, 11],
[18, 19]])]
Должен быть лучший способ сделать это, чем
newarr = [x[0:,0:2]]+[x[0:,2:4]]+[x[0:,4:6]]+...+[x[0:,n:n+2]]
Помощь!