Sto graficando diverse colonne di una grande matrice di dati (tramite numpy.genfromtxt) su una colonna temporale ugualmente dimensionata. I dati mancanti vengono spesso indicati come nan, -999, -9999, ecc. Tuttavia non riesco a capire come rimuovere più valori dall'array. Questo è quello che attualmente ho:Creazione di un array mascherato in Python con più valori dati
for cur_col in range(start_col, total_col):
# Generate what is to be graphed by removing nan values
data_mask = (file_data[:, cur_col] != nan_values)
y_data = file_data[:, cur_col][data_mask]
x_data = file_data[:, time_col][data_mask]
Dopo di che punto uso matplotlib per creare le figure appropriate per ogni colonna. Funziona bene se nan_values è un singolo intero, ma sto cercando di usare un elenco.
MODIFICA: ecco un esempio funzionante.
import numpy as np
file_data = np.arange(12.0).reshape((4,3))
file_data[1,1] = np.nan
file_data[2,2] = -999
nan_values = -999
for cur_col in range(1,3):
# Generate what is to be graphed by removing nan values
data_mask = (file_data[:, cur_col] != nan_values)
y_data = file_data[:, cur_col][data_mask]
x_data = file_data[:, 0][data_mask]
print 'y: ' + str(y_data)
print 'x: ' + str(x_data)
print file_data
>>> y: [ 1. nan 7. 10.]
x: [ 0. 3. 6. 9.]
y: [ 2. 5. 11.]
x: [ 0. 3. 9.]
[[ 0. 1. 2.]
[ 3. nan 5.]
[ 6. 7. -999.]
[ 9. 10. 11.]]
questo non funzionerà se nan_values = [ 'nan', -999], che è quello che sto cercando di realizzare.
si prega di inviare la matrice del campione (lista). –
@AshwiniChaudhary Ho modificato la domanda per includere un esempio funzionante. – Josiah