дополнить трехмерный массив numpy нулями

у меня есть файл npy, там на самом деле хранится картинка. Мне нужно дозаполнить его нулями.

Допустим было [30,40,200],[45,42,200], а нужно [700,500, 200].

Подскажите, пожалуйста, как это сделать?

я пробовала так:

import numpy as np

abc1=np.ones((2,7,8))
abc= np.arange(12).reshape(2, 2, 3)
print(abc)
#print(np.pad(abc[0,0,:],(2,3),"constant"))
for i in range(2):
    abc1[i,:,:]=np.pad(abc[i,:,:],(2,3),"constant")
print(abc1.shape)
print('\n')
print(abc1)

Ответы (1 шт):

Автор решения: Алексей Р
import numpy as np

orig_size, target_size, fill_value = (30, 40, 200), (700, 500, 200), 0
a = np.ones(orig_size)
b = np.pad(a, [(0, ts - os) for ts, os in zip(target_size, orig_size)], mode='constant', constant_values=fill_value)
print(f'{a.shape} >> {b.shape}')
(30, 40, 200) >> (700, 500, 200)
→ Ссылка