Bây giờ chúng tôi có hầu hết mọi thứ chúng tôi cần để xử lý tất cả các tệp dữ liệu của mình. Điều duy nhất còn thiếu là một thư viện có cái tên khá khó chịu import glob
Thư viện print(glob.glob('inflammation*.csv'))
3 chứa một hàm, còn được gọi là print(glob.glob('inflammation*.csv'))
3, tìm các tệp và thư mục có tên khớp với một mẫu. Chúng tôi cung cấp các mẫu đó dưới dạng chuỗi. ký tự print(glob.glob('inflammation*.csv'))
5 khớp với 0 hoặc nhiều ký tự, trong khi print(glob.glob('inflammation*.csv'))
6 khớp với bất kỳ ký tự nào. Chúng tôi có thể sử dụng điều này để lấy tên của tất cả các tệp CSV trong thư mục hiện tạiprint(glob.glob('inflammation*.csv'))
['inflammation-05.csv', 'inflammation-11.csv', 'inflammation-12.csv', 'inflammation-08.csv',
'inflammation-03.csv', 'inflammation-06.csv', 'inflammation-09.csv', 'inflammation-07.csv',
'inflammation-10.csv', 'inflammation-02.csv', 'inflammation-04.csv', 'inflammation-01.csv']
Như những ví dụ này cho thấy, kết quả của print(glob.glob('inflammation*.csv'))
7 là một danh sách các đường dẫn tệp và thư mục theo thứ tự tùy ý. Điều này có nghĩa là chúng ta có thể lặp lại nó để làm điều gì đó với từng tên tệp. Trong trường hợp của chúng tôi, “điều gì đó” mà chúng tôi muốn làm là tạo một tập hợp các ô cho từng tệp trong tập dữ liệu về tình trạng viêm nhiễm của chúng tôi. Nếu chúng ta muốn bắt đầu bằng cách chỉ phân tích ba tệp đầu tiên theo thứ tự bảng chữ cái, chúng ta có thể sử dụng hàm tích hợp sẵn print(glob.glob('inflammation*.csv'))
8 để tạo danh sách được sắp xếp mới từ đầu ra print(glob.glob('inflammation*.csv'))
7import numpy
import matplotlib.pyplot
filenames = sorted(glob.glob('inflammation*.csv'))
filenames = filenames[0:3]
for f in filenames:
print(f)
data = numpy.loadtxt(fname=f, delimiter=',')
fig = matplotlib.pyplot.figure(figsize=(10.0, 3.0))
axes1 = fig.add_subplot(1, 3, 1)
axes2 = fig.add_subplot(1, 3, 2)
axes3 = fig.add_subplot(1, 3, 3)
axes1.set_ylabel('average')
axes1.plot(numpy.mean(data, axis=0))
axes2.set_ylabel('max')
axes2.plot(numpy.max(data, axis=0))
axes3.set_ylabel('min')
axes3.plot(numpy.min(data, axis=0))
fig.tight_layout()
matplotlib.pyplot.show()
inflammation-01.csv
inflammation-02.csv
inflammation-03.csv
Chắc chắn rồi, giá trị cực đại của hai bộ dữ liệu đầu tiên hiển thị chính xác đoạn đường nối giống như đầu tiên và giá trị cực tiểu của chúng hiển thị cấu trúc cầu thang giống nhau; Vẽ sự khác biệtVẽ sự khác biệt giữa giá trị trung bình của tập dữ liệu đầu tiên và giá trị trung bình của tập dữ liệu thứ hai, i. e. , sự khác biệt giữa ô ngoài cùng bên trái của hai hình đầu tiên Giải phápimport glob
import numpy
import matplotlib.pyplot
filenames = sorted(glob.glob('inflammation*.csv'))
data0 = numpy.loadtxt(fname=filenames[0], delimiter=',')
data1 = numpy.loadtxt(fname=filenames[1], delimiter=',')
fig = matplotlib.pyplot.figure(figsize=(10.0, 3.0))
matplotlib.pyplot.ylabel('Difference in average')
matplotlib.pyplot.plot(data0.mean(axis=0) - data1.mean(axis=0))
fig.tight_layout()
matplotlib.pyplot.show()
Tạo thống kê tổng hợpSử dụng từng tệp một lần để tạo tập dữ liệu chứa các giá trị trung bình cho tất cả bệnh nhân filenames = glob.glob('inflammation*.csv')
composite_data = numpy.zeros((60,40))
for f in filenames:
# sum each new file's data into composite_data as it's read
#
# and then divide the composite_data by number of samples
composite_data /= len(filenames)
Sau đó, sử dụng pyplot để tạo trung bình, tối đa và tối thiểu cho tất cả bệnh nhân Giải phápimport glob
import numpy
import matplotlib.pyplot
filenames = glob.glob('inflammation*.csv')
composite_data = numpy.zeros((60,40))
for f in filenames:
data = numpy.loadtxt(fname = f, delimiter=',')
composite_data += data
composite_data/=len(filenames)
fig = matplotlib.pyplot.figure(figsize=(10.0, 3.0))
axes1 = fig.add_subplot(1, 3, 1)
axes2 = fig.add_subplot(1, 3, 2)
axes3 = fig.add_subplot(1, 3, 3)
axes1.set_ylabel('average')
axes1.plot(numpy.mean(composite_data, axis=0))
axes2.set_ylabel('max')
axes2.plot(numpy.max(composite_data, axis=0))
axes3.set_ylabel('min')
axes3.plot(numpy.min(composite_data, axis=0))
fig.tight_layout()
matplotlib.pyplot.show()
Xử lý tệp nhỏSửa đổi chương trình này để nó chỉ xử lý các tệp có ít hơn 50 bản ghi print(glob.glob('inflammation*.csv'))
0Giải phápprint(glob.glob('inflammation*.csv'))
1
Những điểm chínhSử dụng vòng lặp print(glob.glob('inflammation*.csv'))
2 để xử lý các tệp được cung cấp danh sách tên của chúngSử dụng ['inflammation-05.csv', 'inflammation-11.csv', 'inflammation-12.csv', 'inflammation-08.csv',
'inflammation-03.csv', 'inflammation-06.csv', 'inflammation-09.csv', 'inflammation-07.csv',
'inflammation-10.csv', 'inflammation-02.csv', 'inflammation-04.csv', 'inflammation-01.csv']
1 để tạo danh sách các tệp có tên khớp với mẫuSử dụng print(glob.glob('inflammation*.csv'))
5 trong một mẫu để khớp với 0 hoặc nhiều ký tự và print(glob.glob('inflammation*.csv'))
6 để khớp với bất kỳ ký tự đơn nào
|