Другой post У меня было именно то, что я хотел, но я не могу реализовать его в структурированном массиве.
Скажем, у меня есть такой массив:
>>> arr = np.empty(2, dtype=np.dtype([('xy', np.float32, (2, 2))]))
>>> arr['xy']
array([[[1., 1.],
[2., 2.]],
[3., 3.],
[4., 4.]]], dtype=float32)
Мне нужно дополнить его так, чтобы последняя строка в каждом подмассиве повторялась указанное c число раз:
arr['xy'] = np.pad(arr['xy'], [(0, 0), (0, 2), (0, 0)], mode='edge')
Однако я получаю ValueError:
ValueError: could not broadcast input array from shape (2, 4, 2) into shape (2, 2, 2)
Итак, без структурированного массива я попробовал следующее:
>>> arr = np.array([[[1, 1], [2, 2]], [[3, 3], [4, 4]]])
>>> arr
array([[[1, 1],
[2, 2]],
[3, 3],
[4, 4]]], dtype=float32)
>>> arr = np.pad(arr, [(0, 0), (0, 2), (0, 0)], mode='edge')
>>> arr
array([[[1, 1],
[2, 2],
[2, 2],
[2, 2]],
[3, 3],
[4, 4],
[4, 4],
[4, 4]], dtype=float32)
Почему я не могу повторить со структурированным массивом?