Giới hạn gấu trúc và các lựa chọn thay thế của nó trong Python


11

Tôi đã đọc ở đâu đó rằng Pandas lần đầu tiên được phát triển cho thế giới tài chính, ít nhất là đặc biệt là đối với khoa học tự nhiên (vật lý, sinh học, v.v.), vậy có phân tích dữ liệu tương tự gói Python nào có định hướng khoa học tự nhiên hơn không?

Tôi mới bắt đầu sử dụng Pandas và tôi đã gặp phải hai vấn đề tôi không thể giải quyết mà không sử dụng các gói hoặc giải pháp tự chế khác:

  • Làm thế nào để quản lý sự không chắc chắn?
  • Làm thế nào để xác định dễ dàng các đơn vị dữ liệu của tôi?

Có thể có những vấn đề khác nhưng tôi thiếu kinh nghiệm để chính xác hơn. Hiện tại, tôi nghĩ về gói không chắc chắn để giải quyết điểm đầu tiên nhưng tôi không chắc nó sẽ hoạt động tốt với Pandas và sẽ không làm giảm tốc độ tính toán. Trên thực tế, tôi không tìm kiếm một cách tính toán với sự không chắc chắn, chỉ là một cách đơn giản để lưu trữ sự không chắc chắn cùng với dữ liệu nhập khẩu của tôi. Đối với điểm thứ hai, tôi đã không tìm thấy giải pháp nào tốt hơn là tạo một từ điển ngoài DataFrame của mình để quản lý các đơn vị được liên kết với mỗi dữ liệu.

Nếu bạn đã từng gặp vấn đề tương tự, bạn đã giải quyết nó như thế nào hoặc bạn sử dụng gói nào khác để thao tác / lưu trữ / phân tích dữ liệu trong Python trong khoa học tự nhiên?


2
Một thay thế cho các đơn vị hỗ trợ gấu trúc và sự không chắc chắn là Tablelớp trong astropy.
P3trus

1
Có vẻ tuyệt vời, tôi không biết astropy có những thứ như thế này. Mặc dù vậy, tôi đã lướt qua tài liệu nhưng không thể tìm thấy các ví dụ rõ ràng để đặt sự không chắc chắn trong Table(nhưng tôi đã tìm thấy phần đơn vị). NDDatadường như quản lý điều đó nhưng tôi không chắc về sự khác biệt giữa các lớp này. Nếu bạn không phiền khi bình luận của bạn thành một câu trả lời với ví dụ 2 dòng, tôi sẵn sàng chấp nhận nó!
Clark

Câu trả lời:


5

Tôi đồng ý với Davidmh rằng tính toán độ không đảm bảo không nên được xử lý bởi một thư viện tự động. Bạn sẽ rất nhanh gặp phải trường hợp tự động thất bại (ví dụ thử thực hiện chuyển đổi Fourier).

Tuy nhiên, bạn nói rằng bạn chỉ muốn giữ sự không chắc chắn với dữ liệu của mình. Tại sao không thêm chúng dưới dạng một cột bổ sung trong khung dữ liệu của bạn? Đây là cách tôi thường quản lý sự không chắc chắn với gấu trúc.

Pandas không có sự hỗ trợ của các đơn vị, tuy nhiên mọi thứ đều có thể đi vào một khung dữ liệu để bạn có thể sử dụng gói số lượng trực tiếp. Tuy nhiên, không phải tất cả các chức năng sẽ hoạt động trong gấu trúc (mặc dù số lượng đáng ngạc nhiên vẫn sẽ) và sẽ có một hình phạt hiệu suất.

Đã có một số cuộc thảo luận để cho phép đính kèm siêu dữ liệu trong gấu trúc, nhưng cho đến nay dường như không có gì đến từ nó.

Với ngoại lệ có thể có của C ++ 11, tôi biết không có ngôn ngữ hoặc thư viện nào có thể cung cấp cho bạn hỗ trợ đơn vị hạng nhất thực sự tốt. Luôn có sự mất hiệu suất và thiếu khả năng tương thích

.


2

Quản lý sự không chắc chắn thực sự là một vấn đề thống kê khá tế nhị. Biểu thức đã biết để truyền lỗi sử dụng các đạo hàm riêng bình phương là tốt khi các lỗi thường được phân phối, độc lập và nhỏ. Đây thường là trường hợp; và trên thực tế, ngay cả khi tính quy phạm hoặc tính độc lập không được thỏa mãn hoàn toàn, đối với hầu hết các trường hợp thực tế, kết quả có thể gần với thực tế, với điều kiện bạn chỉ quan tâm đến ước tính hợp lý của khoảng thời gian.

tội(2±0,1)= =tội(2)tội(1.9)tội(2.1)

Đối với các trường hợp cần độ chính xác cao hơn, nếu bạn có một mô hình phân tích đẹp cho sự không chắc chắn của mình, có các phương pháp, như khả năng tối đa, có thể được sử dụng để lấy ra các ước lượng chính xác.

Nhưng nếu bạn muốn một kết quả chính xác hợp lệ cho bất kỳ đầu vào nào có thể (hãy tưởng tượng phải phân tích mô hình một máy dò nhiễu trong đó độ ồn có cùng độ chính xác), có tính đến tất cả các mối tương quan và có thể khám phá tất cả không gian tham số có liên quan , bạn cần phương pháp Monte Carlo. Thêm tiếng ồn ngẫu nhiên vào một số trường hợp đầu vào của bạn và chạy phân tích đầy đủ. Tất nhiên, điều này có thể có nghĩa là bạn phải nhân thời gian tính toán của mình lên hàng trăm hoặc hàng nghìn, nhưng nó luôn luôn song song.

Vì vậy, cuối cùng, tất cả phụ thuộc vào những gì bạn muốn làm, mức độ chính xác và bao nhiêu tài nguyên bạn có.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.