И NumPy, как для перебора столбцов массива?



предположим, что у меня есть и M x N массив. Я хочу передать каждый столбец этого массива в функцию для выполнения некоторой операции над всем столбцом. Как выполнить итерацию по столбцам массива?



например, у меня есть массив 4 x 3, как



1  99 2
2 14 5
3 12 7
4 43 1

for column in array:
some_function(column)


где столбец будет " 1,2,3,4 "в первой итерации," 99,14,12,43 "во второй и" 2,5,7,1 " в третьей.

1113   4  

4 ответов:

просто повторите транспонирование вашего массива:

for column in array.T:
   some_function(column)

Это должно дать вам начать

>>> for col in range(arr.shape[1]):
    some_function(arr[:,col])


[1 2 3 4]
[99 14 12 43]
[2 5 7 1]
for c in np.hsplit(array, array.shape[1]):
    some_fun(c)

для трехмерного массива вы можете попробовать:

для c в массиве.транспонировать(1, 0, 2): do_stuff (c)

посмотреть документы о том, как массив.транспонировать строительство. В основном вы указываете, какое измерение нужно сдвинуть. В этом случае мы перемещаем второе измерение (например, столбцы) в первое измерение.

Comments

    Ничего не найдено.