Я бы не хотел делать это таким образом, но все, что приходит на ум, - это создать второй массив желаемой формы и нарезать в него ваши данные.Я должен признать, что мне трудно понять формы каждого подмассива ... это кажется нелогичным.В любом случае, это решение будет медленным, но вы можете сделать это один раз, сохранить массив и никогда больше не делать.
import numpy as np
a = np.load('test.npy')
b = np.full((6886, 3, 787, 6), np.nan)
for row in range(6886):
for col in range(3):
tmp = a[row][col]
b[row, col, :tmp.shape[0], :tmp.shape[1]] = tmp
Имеет ли это смысл / работает?