Tôi đang vẽ đồ thị một số cột của một mảng lớn dữ liệu (thông qua numpy.genfromtxt) với cột thời gian có kích thước bằng nhau. Thiếu dữ liệu thường được gọi là nan, -999, -9999, vv Tuy nhiên tôi không thể tìm ra cách để loại bỏ nhiều giá trị khỏi mảng. Đây là những gì tôi hiện có:Tạo một mảng mặt nạ trong Python với nhiều giá trị đã cho
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]
Sau đó tôi sử dụng matplotlib để tạo các số liệu thích hợp cho mỗi cột. Điều này làm việc tốt nếu nan_values là một số nguyên duy nhất, nhưng tôi đang tìm cách sử dụng một danh sách.
EDIT: Đây là ví dụ hoạt động.
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.]]
Điều này sẽ không hoạt động nếu nan_values = ['nan', -999] là điều tôi muốn hoàn thành.
xin vui lòng gửi các mảng mẫu (danh sách). –
@AshwiniChaudhary Tôi đã chỉnh sửa câu hỏi để bao gồm một ví dụ làm việc. – Josiah