私は同じサイズの時間列に対して(numpy.genfromtxtを通して)大きなデータ配列のいくつかの列をグラフ化しています。欠けているデータはしばしばnan、-999、-9999などと呼ばれますが、配列から複数の値を取り除く方法はわかりません。これは私が現在持っているものです:複数の与えられた値を持つPythonでマスクされた配列を作成する
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]
その後、私はmatplotlibを使って各列に適切な図を作成します。これは、nan_valuesが単一の整数であればうまく動作しますが、リストを使用しようとしています。
EDIT:これは実際の例です。
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.]]
nan_valuesの=私は達成するために探しています何である[「ナン」、-999]場合、これは動作しません。
サンプル配列(リスト)を投稿してください。 –
@AshwiniChaudhary私は実際の例を含めるように質問を編集しました。 – Josiah