Tengo una matriz a
como esta:
a = [[40, 10], [50, 11]]
Necesito calcular la media para cada dimensión por separado, el resultado debería ser este:
[45, 10.5]
45
siendo la media de a[*][0]
y 10.5
la media de a[*][1]
.
¿Cuál es la forma más elegante de resolver esto sin usar un bucle?
In [n]:
significa? es esta parte del código?axis=0
lugar deaxis=1
axis=0
está en la siguiente línea. Edité para mostrar más información, ¿actualizar, tal vez?mean = np.mean(a, axis=(0,2,3)) mean?
saber que el tensor de entrada (a) tiene forma (lote, canal, ancho, alto)?Aquí hay una solución no numpy:
>>> a = [[40, 10], [50, 11]] >>> [float(sum(l))/len(l) for l in zip(*a)] [45.0, 10.5]
fuente
Si haces esto mucho, NumPy es el camino a seguir.
Si por alguna razón no puede usar NumPy:
>>> map(lambda x:sum(x)/float(len(x)), zip(*a)) [45.0, 10.5]
fuente