numpy вставка 1 столбца после каждого начиная со 2
Всем здравствуйте, изучая numpy, я нашел задание по вставке 1 столбца 2D-массива после каждого столбца начиная со 2 пытался сделать это срезами:
b = a[:,0]
a[:,::2] = b
не получилось, с помощью функции numpy insert так же не удается. Может кто подсказать?
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Ну, например, можно сделать так:
При исходных:
mport numpy as np
a = np.array([0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5]).reshape(6,4)
b = np.array([66,66,66,66,66,66]).reshape(6,1)
a:
[[0 0 0 0]
[1 1 1 1]
[2 2 2 2]
[3 3 3 3]
[4 4 4 4]
[5 5 5 5]]
b:
[[66]
[66]
[66]
[66]
[66]
[66]]
делаем:
idx=list(range(2, a.shape[0]-1))
res = np.insert(a,idx,b, axis=1)
получаем res:
[[ 0 0 66 0 66 0 66]
[ 1 1 66 1 66 1 66]
[ 2 2 66 2 66 2 66]
[ 3 3 66 3 66 3 66]
[ 4 4 66 4 66 4 66]
[ 5 5 66 5 66 5 66]]