En este artículo, aprenderemos cómo encontrar el promedio de cada n elemento de una array NumPy. Para realizar nuestra tarea, utilizaremos algunos métodos incorporados proporcionados por el módulo NumPy, que son los siguientes:
- numpy.average() para calcular el promedio, es decir, la suma de todos los números dividida por el número de elementos
- numpy.reshape() para remodelar la array tomando n elementos a la vez sin cambiar los datos originales
- numpy.mean() para calcular el promedio, ya que la media no es más que la suma de elementos dividida por la cantidad de elementos
Ejemplo 1: promedio sobre una array 1-D
Python3
import numpy as np # converting list to numpy array givenArray = np.array([6, 5, 4, 3, 2, 1, 9, 8, 7, 12, 11, 10, 15, 14, 13]) # here we took 3 as our input n = 3 # calculates the average avgResult = np.average(givenArray.reshape(-1, n), axis=1) print("Given array:") print(givenArray) print("Averaging over every ", n, " elements of a numpy array:") print(avgResult)
Producción:
Nota: N debe ser un múltiplo entero del tamaño de la array 1d.
Ejemplo 2: promedio sobre una array 1-D (en filas)
Aquí hemos tomado una array de dimensiones (5,3), es decir, tiene 5 filas y 3 columnas. Dado que el eje = 1, reformará los elementos en grupos de n y luego calculará el promedio por fila usando el eje = 1.
Python3
import numpy as np # converting list to numpy array givenArray = np.array([[60, 50, 40], [30, 20, 10], [90, 80,70], [120, 110, 100], [150, 140, 130]]) # here we took 5 as our input n = 5 # calculates the average avgResult = np.average(givenArray.reshape(-1, n), axis=1) print("Given array:") print(givenArray, "\n") print("Dimensions of given array:", givenArray.shape, "\n") print("Averaging over every ", n, " elements of a numpy array:") print(avgResult)
Producción:
Ejemplo 3: promedio sobre una array 1-D (en columnas)
Recuerde que debemos dar el eje = 1 solo entonces puede agrupar elementos en forma de fila a partir del índice 0. Ahora, si cambiamos el valor del eje a 0, luego de remodelar en grupos de n, realizará la operación promedio en forma de columna como se indica a continuación, lo que no nos dará el resultado deseado. Es mejor si queremos calcular el promedio por columnas.
Python3
import numpy as np # converting list to numpy array givenArray = np.array([[60, 50, 40], [30, 20, 10], [90, 80, 70], [120, 110, 100], [150, 140, 130]]) # here we will calculate average # over every 5 elements n = 5 # calculates the average avgResult = np.average(givenArray.reshape(-1, n), axis=0) print("Given array:") print(givenArray, "\n") print("Dimensions of given array:", givenArray.shape, "\n") print("Averaging over every ", n, " elements of a numpy array:") print(avgResult)
Después de remodelar la array 2D, se ve a continuación:
Luego, realizando la columna promedio sabia, obtenemos la respuesta.
Producción:
Ejemplo 4: promedio sobre una array 1-D (en columnas sin remodelar)
Tenga en cuenta aquí que tomando axis=0 no podemos realizar el promedio por fila sobre cada n elemento. Simplemente calculará el promedio de cada columna por separado. El siguiente código calculará el promedio sobre cada elemento de la columna.
Python3
import numpy as np # converting list to numpy array givenArray = np.array([[60, 50, 40], [30, 20, 10], [90, 80,70], [120, 110, 100], [150, 140, 130]]) # here we will calculate average over # every 5 elements n = 5 # calculates the average avgResult1 = givenArray.mean(axis=0) print("Given array:") print(givenArray, "\n") print("Dimensions of given array:", givenArray.shape, "\n") print("Averaging over every ", n, " elements of a numpy array:") print(avgResult1)
Producción:
Publicación traducida automáticamente
Artículo escrito por rijushree100guha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA