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
x.compressed()
restituisce un vettore con tutti gli elementi validi di xx.count()
restituisce il numero di elementi validi in xx.filled(val)
restituisce un array numpy dove tutti gli elementi non validi di x sono sostituiti con valx.mask()
restituisce la matrice maschera di xx[2,3] = 4
setta il valore e lo marca come validox.mask()[2,3] = 1
marca il valore come non valido
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
.