дополнить трехмерный массив 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)