Я прочитал большинство связанных вопросов здесь, но я не могу понять, как использовать np.pad
в этом случае.Возможно, это не предназначено для этой конкретной проблемы.
Допустим, у меня есть список массивов Numpy.Каждый массив имеет одинаковую длину, например 2. Сам список должен быть дополнен, например, до 5 массивов, и его также можно преобразовать в простой массив.Дополненные элементы должны быть массивами, заполненными нулями.В качестве примера
arr = [array([0, 1]), array([1, 0]), array([1, 1])]
expected_output = array([array([0, 1]), array([1, 0]), array([1, 1]), array([0, 0]), array([0, 0])])
Кажется, что работает следующее, но я чувствую, что должен быть лучший и более эффективный способ.На самом деле это выполняется сотни тысяч, если не миллионы раз, поэтому важна скорость.Возможно с np.pad
?
import numpy as np
def pad_array(l, item_size, pad_size=5):
s = len(l)
if s < pad_size:
zeros = np.zeros(item_size)
for _ in range(pad_size-s):
# not sure if I need a `copy` of zeros here?
l.append(zeros)
return np.array(l)
B = [np.array([0,1]), np.array([1,0]), np.array([1,1])]
AB = pad_array(B, 2)
print(AB)