Если вы не хотите заботиться о фигурах, используйте np.zeros_like
:
np.zeros_like(a)
# array([0, 0, 0, 0, 0])
Существует также возможность запроса np.shape
:
np.zeros(np.shape(a))
# array([0., 0., 0., 0., 0.])
Обе опции должны работать и для списков ND.