Как добавить новые строки и столбцы в массив pad numpy

#python #numpy #vectorization

#python #numpy #векторизация

Вопрос:

У меня есть массив матриц разных размеров, и мне нужно дополнить их все до одинакового размера (805, 16866). Ниже приведен код, который я в настоящее время использую для этого, но я полагаю, что его можно было бы векторизовать, однако я не уверен, как это сделать.

 x1 = np.zeros((805, 16866))

for i in range(x[0].shape[0]):
    for j in range(x[0].shape[1]):
        x1[i, j] = x[0][i, j]
  

Комментарии:

1. Вы можете использовать np.pad .

Ответ №1:

В приведенном выше примере x1[:x[0].shape[0], :x[0].shape[1]] = x должно сработать

Ответ №2:

Есть numpy.pad функция (docs), которая делает то, что вам нужно.

Код, который вы хотите, это

 x1 = np.zeros((805,16866))

for i in range(x.shape[0])
  x1[i,:]= np.pad(x[i,:],x1.shape[0],'constant',constant_values=0)