Ho un semplice array 3D a1
, e il suo analogo mascherato a2
:`numpy.mean` utilizzato con una tupla come` fuori asse` argomento: non funziona con una gamma mascherato
import numpy
a1 = numpy.array([[[ 0.00, 0.00, 0.00],
[ 0.88, 0.80, 0.78],
[ 0.75, 0.78, 0.77]],
[[ 0.00, 0.00, 0.00],
[ 3.29, 3.29, 3.30],
[ 3.27, 3.27, 3.26]],
[[ 0.00, 0.00, 0.00],
[ 0.41, 0.42, 0.40],
[ 0.42, 0.43, 0.41]]])
a2 = numpy.ma.masked_equal(a1, 0.)
voglio eseguire la media di questo array lungo più assi contemporaneamente (questo è un caratteristico, uso documentato di axis
argomento numpy.mean
, si veda ad esempio here per un esempio):
numpy.mean(a1, axis=(0, 1))
questo funziona bene con 0.123.865,553842 millions 383.105.577.445,89321 milioni, ma ottengo il seguente errore con l'array mascherato a2
:
TypeError: tuple indices must be integers, not tuple
e ottengo lo stesso errore con la versione mascherata numpy.ma.mean(a2, axis=(0, 1))
, o se unmasko la matrice attraverso a2[a2.mask]=0
.
sto usando una tupla per l'argomento axis
in numpy.mean
come è in realtà non codificato (questo comando viene applicato su array con potenially diverso numero di dimensioni, secondo la quale la tupla è atto).
Problema riscontrato con numpy
versione 1.9.1
e 1.9.2
.
Potrebbe fornire un esempio di copia e incolla? – atomh33ls
Secondo [docs] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.mean.html), l'argomento dell'asse dovrebbe essere un int. Che cosa fa passare una tupla invece di una int? – ypx
Non dovresti usare la versione ['ma' di' mean'] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.ma.mean.html) per un argomento di array mascherato ? – user2357112