tutorial - ¿Cómo usar numpy con el valor ''Ninguno'' en Python?
recorrer una matriz en python (6)
Estás buscando matrices enmascaradas . Aquí hay un ejemplo.
import MA
a = MA.array([1, 2, None], mask = [0, 0, 1])
print "average =", MA.average(a)
Desafortunadamente, los arrays enmascarados no son totalmente compatibles con numpy, así que tienes que mirar alrededor para ver qué se puede y no se puede hacer con ellos.
Me gustaría calcular la media de una matriz en Python de esta forma:
Matrice = [1, 2, None]
Simplemente me gustaría que el valor numpy.mean
ignorara mi valor de None
, pero no puedo averiguar cómo hacerlo.
Puedes usar scipy para eso:
import scipy.stats.stats as st
m=st.nanmean(vec)
También puede ser capaz de manejar valores como NaN o Inf.
In [1]: array([1, 2, None])
Out[1]: array([1, 2, None], dtype=object)
In [2]: array([1, 2, NaN])
Out[2]: array([ 1., 2., NaN])
En realidad, puede que ni siquiera sea un embrollo. Wikipedia dice :
Los NaN se pueden usar para representar valores perdidos en los cálculos.
En realidad, esto no funciona para la función mean (), sin embargo, así que no te preocupes. :)
In [20]: mean([1, 2, NaN])
Out[20]: nan
También puede usar el filtro, pasarle Ninguno, filtrará los objetos no verdaderos, también 0,: D Por lo tanto, utilícelo cuando no necesite 0 también.
>>> filter(None,[1, 2, None])
[1, 2]
no ha usado numpy, pero en Python estándar puede filtrar None
usando la lista de comprensión o la función de filtro
>>> [i for i in [1, 2, None] if i != None]
[1, 2]
>>> filter(lambda x: x != None, [1, 2, None])
[1, 2]
y luego promediar el resultado para ignorar el None
np.mean (Matrice [Matrice! = Ninguno])