Python versione Bignami - Masked array

Creazione

import numpy.ma

# Costruttori in stile numpy
x = numpy.ma.array([1,2,3])
x = numpy.ma.arange(10)
# Costruttori con una maschera (0: valido, 1: non valido)
x = numpy.ma.array([1,2,3], mask=[0,1,0])
# Dato un array numpy esistente, costruisce un masked array che usa gli
# stessi dati, evitando la copia
y = numpy.ma.masked_array(x)
# Dato un array esistente, ne crea uno dove tutti i valori simili a un valore
# dato sono marcati non validi
y = numpy.ma.masked_values(x, 1.e20)
y = numpy.ma.masked_values([ [1,2,3],[4,5,6],[7,8,9]], 5)
# Dato un array esistente, ne crea uno dove tutti i valori piú grandi di
# `val` sono non validi
y = numpy.ma.masked_greater(x, val)
y = numpy.ma.masked_greater_equal(x, val)
y = numpy.ma.masked_equal(x, val)
y = numpy.ma.masked_not_equal(x, val)
y = numpy.ma.masked_less(x, val)
y = numpy.ma.masked_less_equal(x, val)
# Dato un array esistente, crea un array dove i valori tra val1 e val2
# (entrambi inclusi) non sono validi
y = numpy.ma.masked_inside(x, val1, val2)
# Dato un array esistente, crea un array dove i valori tra val1 e val2
# (entrambi inclusi) sono gli unici validi
y = numpy.ma.masked_outside(x, val1, val2)

Operazioni

La maggior parte delle operazioni con gli array numpy esiste anche per i masked array, con la differenza che i valori non validi non vengono mai presi in considerazione.

A differenza degli array numpy, l'estrazione di sottomatrici restituisce una copia della sottomatrice.

Se un'operazione che da come risultato un numero deve restituire un dato non valido (per esempio, indicizzare un dato non valido, o la sommatoria degli elementi di un vettore quando sono tutti non validi), allora restituisce la costante masked.

Link