Каковы эффективные способы зацикливания векторов вдоль указанной оси в numpy ndarray?

Я обрабатываю данные, зацикливаясь на векторах вдоль оси (может быть любой оси) numpy ndarray (может иметь любые размеры).

Я не работал с массивом напрямую, потому что данные не идеальны. Требуется контроль качества каждого вектора. Если это не хорошо, вектор будет заполнен нулями (или нан) и не будет иметь реальной обработки.

я нашелэтот вопрос похоже, но моя проблема гораздо сложнее, потому что

ndim произвольно.

Для трехмерного массива я могу взять векторыaxis 1 как это

 x = np.arange(24).reshape(2,3,4)
 for i in range(x.shape[0]):
     for k in range(x.shape[2]):
         process(x[i,:,k])

но еслиndim и взятыйaxis не фиксируются, как взять векторы?

Ось взятия векторов произвольна.

Один из возможных способов, который я рассматриваю,

 y = x.swapaxes(ax,-1)
 # loop over vectors along last axis
 for i in np.ndindex(y.shape[:-1]):
     process(y[i+(slice(None),)])
 # then swap back
 z = y.swapaxes(ax,-1)

Но я сомневаюсь в эффективности этого метода.

Ответы на вопрос(2)

Ваш ответ на вопрос