Разница между осями и осью в том, что оси — это форма множественного числа, а ось — форма единственного числа. Это означает, что в этой функции мы можем указать оси, на которых мы хотим выполнить нашу операцию.
Что такое функция numpy.apply_over_axes() в Python?
np.apply_over_axes() — это встроенная библиотечная функция Numpy, используемая в Python для многократного выполнения любой функции над несколькими осями в массиве nd. Метод apply_over_axes() часто применяет функцию к нескольким осям в массиве.
Синтаксис
|
1 |
numpy.apply_along_axis(1d_func, array, axes, *args, **kwargs) |
Параметры
Функция NumPy apply_over_axes() имеет 5 параметров:
- 1d_func: этот параметр необходим для работы с одномерным массивом. Его можно применять в одномерных срезах входного массива и вдоль определенной оси.
- array: массив, над которым мы хотим работать.
- axis: это необходимые оси, вдоль которых мы хотим работать.
- *args: дополнительный аргумент функции 1D(1d_func).
- **kwargs: дополнительный именованный аргумент для 1D-функции(1d_func).
Возвращаемое значение
Функция NumPy apply_over_axes() возвращает выходной массив. Форма выходного массива может различаться в зависимости от того, изменяет ли функция(1d_func) форму своего вывода в соответствии со своим вводом.
Вычисление суммы 2D-массива
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#Importing numpy import numpy as np #We will create a 2D array #Of shape 4x3 arr = np.array([(1, 10, 3),(14, 5, 6),(7, 8, 19),(50, 51, 52)]) #Printing the array print("The array is: ") print(arr) #Declaring axes axes = [1, -1] print("Sum of array elements are:") print(np.apply_over_axes(np.sum, arr, axes)) |
Выход:
|
1 2 3 4 5 6 7 8 9 10 |
The array is: [[ 1 10 3] [14 5 6] [ 7 8 19] [50 51 52]] Sum of array elements are: [[ 14] [ 25] [ 34] [153]] |
Объяснение.
В этом примере мы объявили один 2D-массив размером 4×3, распечатали его и его форму.
Мы объявили axes=[1,-1] и вызвали apply_over_axes() для вычисления суммы его элементов. Мы видим, что у нас есть столбец из 4 строк; каждый столбец имеет сумму своих элементов строки.
Вычисление суммы трехмерного массива
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#Importing numpy import numpy as np #We will create a 2D array #Of shape 4x3 arr = np.arange(12).reshape(2, 2, 3) #Printing the array print("The array is: ") print(arr) #Declaring axes axes = [0, 2] print("Sum of array elements are:") print(np.apply_over_axes(np.sum, arr, axes)) |
Выход:
|
1 2 3 4 5 6 7 8 9 |
The array is: [[[ 0 1 2] [ 3 4 5]] [[ 6 7 8] [ 9 10 11]]] Sum of array elements are: [[[24] [42]]] |
Объяснение.
В этом примере мы сначала объявили один трехмерный массив фигур(2x2x3) и распечатали этот массив. Затем объявили оси со значениями [0,2], вычислив сумму по осям 0 и 2. И получили желаемый результат, когда вызвали функцию.
