ข้อ จำกัด ของ Pandas และทางเลือกใน Python


11

ฉันอ่านที่ไหนสักแห่งที่Pandasได้รับการพัฒนาเป็นครั้งแรกสำหรับโลกการเงินอย่างน้อยก็ไม่ได้โดยเฉพาะอย่างยิ่งสำหรับวิทยาศาสตร์ธรรมชาติ (ฟิสิกส์ชีววิทยาและอื่น ๆ ) ดังนั้นการวิเคราะห์ข้อมูลใดที่คล้ายกัน Python แพ็คเกจ "วิทยาศาสตร์ธรรมชาติเชิง"

ฉันเพิ่งเริ่มใช้ Pandas และฉันพบปัญหาสองอย่างที่ฉันไม่สามารถแก้ไขได้โดยไม่ใช้แพ็คเกจอื่นหรือวิธีแก้ปัญหาแบบโฮมเมด:

  • จะจัดการความไม่แน่นอนได้อย่างไร
  • จะกำหนดหน่วยข้อมูลของฉันได้อย่างง่ายดายได้อย่างไร?

อาจมีปัญหาอื่น ๆ แต่ฉันไม่มีประสบการณ์ที่จะแม่นยำมากขึ้น ในตอนนี้ฉันคิดถึงแพ็คเกจความไม่แน่นอนที่จะแก้จุดแรก แต่ฉันไม่แน่ใจว่ามันจะทำงานได้ดีกับนุ่นและจะไม่ลดความเร็วในการคำนวณ ที่จริงแล้วฉันไม่ได้มองหาวิธีการคำนวณด้วยความไม่แน่นอนเพียงวิธีง่ายๆในการจัดเก็บความไม่แน่นอนพร้อมกับข้อมูลที่นำเข้าของฉัน สำหรับจุดที่สองฉันไม่พบทางออกที่ดีไปกว่าการสร้างพจนานุกรมนอกเหนือจาก DataFrame ของฉันเพื่อจัดการหน่วยที่เกี่ยวข้องกับแต่ละข้อมูล

หากคุณเคยประสบปัญหาเดียวกันคุณจะแก้ไขได้อย่างไรหรือใช้แพคเกจอื่นใดในการจัดการ / จัดเก็บ / วิเคราะห์ข้อมูลใน Python ในสาขาวิทยาศาสตร์ธรรมชาติ


2
อีกทางเลือกหนึ่งสำหรับหน่วยสนับสนุนและความไม่แน่นอนของหมีแพนด้าคือTableคลาสที่อยู่ในกลุ่มนักโหราศาสตร์
P3trus

1
ดูเหมือนว่าดีฉันไม่รู้ว่ามีสิ่งต่าง ๆ เช่นนี้ ถึงกระนั้นฉันก็ดูเอกสาร แต่ไม่สามารถหาตัวอย่างที่ชัดเจนเพื่อกำหนดความไม่แน่นอนในTable(แต่ฉันพบส่วนของหน่วย) NDDataดูเหมือนว่าจะจัดการ แต่ฉันไม่แน่ใจเกี่ยวกับความแตกต่างระหว่างชั้นเรียนเหล่านี้ หากคุณไม่รังเกียจที่จะเปลี่ยนความคิดเห็นเป็นคำตอบด้วยตัวอย่าง 2 บรรทัดฉันยินดียอมรับ!
คลาร์ก

คำตอบ:


5

ฉันเห็นด้วยกับ Davidmh ว่าการคำนวณความไม่แน่นอนไม่ควรจัดการโดยห้องสมุดอัตโนมัติ คุณจะทำงานอย่างรวดเร็วในกรณีที่ระบบอัตโนมัติล้มเหลว (ลองทำการแปลงฟูริเยร์เป็นตัวอย่าง)

คุณบอกว่าคุณต้องการเก็บข้อมูลที่ไม่แน่นอน ทำไมไม่เพียงเพิ่มพวกเขาเป็นคอลัมน์เพิ่มเติมใน dataframe ของคุณ นี่คือวิธีที่ฉันมักจะจัดการกับความไม่แน่นอนเกี่ยวกับนุ่น

Pandas ไม่ได้รับการสนับสนุนจากหน่วย แต่สิ่งที่สามารถเข้าไปใน dataframe เพื่อให้คุณสามารถใช้แพคเกจปริมาณโดยตรง ฟังก์ชันการทำงานบางอย่างอาจไม่ทำงานในนุ่น (แต่ก็ยังมีจำนวนที่น่าประหลาดใจ) และจะมีการปรับประสิทธิภาพ

มีการพูดคุยกันเพื่อให้สามารถแนบข้อมูลเมตาในหมีแพนด้าได้ แต่จนถึงตอนนี้ดูเหมือนว่าจะไม่มีอะไรเกิดขึ้น

ด้วยข้อยกเว้นที่เป็นไปได้ของ C ++ 11 ฉันรู้ว่าไม่มีภาษาหรือไลบรารีที่จะให้การสนับสนุนที่ดีเยี่ยมแก่คุณ มีการสูญเสียประสิทธิภาพและขาดความเข้ากันได้เสมอ

.


2

การจัดการความไม่แน่นอนเป็นปัญหาทางสถิติที่ค่อนข้างละเอียดอ่อน การแสดงออกที่รู้จักกันสำหรับการแพร่กระจายข้อผิดพลาดโดยใช้อนุพันธ์บางส่วนกำลังสองเป็นสิ่งที่ดีเมื่อข้อผิดพลาดมีการกระจายปกติเป็นอิสระและมีขนาดเล็ก โดยปกติจะเป็นกรณี; และในความเป็นจริงแม้ว่าบรรทัดฐานหรือความเป็นอิสระจะไม่ได้รับความพึงพอใจอย่างเต็มที่สำหรับกรณีที่ปฏิบัติได้มากที่สุดผลที่ได้อาจใกล้เคียงกับของจริงมากพอสมควรหากคุณมีความสนใจในการประมาณช่วงเวลาที่สมเหตุสมผล

sin(2±0.1)=sin(2)sin(1.9)sin(2.1)

สำหรับกรณีที่จำเป็นต้องมีความแม่นยำมากขึ้นหากคุณมีแบบจำลองการวิเคราะห์ที่ดีสำหรับความไม่แน่นอนของคุณมีวิธีการต่าง ๆ เช่นความน่าจะเป็นสูงสุดซึ่งสามารถใช้เพื่อให้ได้ตัวประมาณที่ถูกต้อง

แต่ถ้าคุณต้องการผลลัพธ์ที่ถูกต้องสำหรับการป้อนข้อมูลใด ๆ ที่เป็นไปได้ (ลองจินตนาการถึงการวิเคราะห์แบบจำลองเครื่องตรวจจับที่มีเสียงดังซึ่งเสียงนั้นมีความสอดคล้องกับความแม่นยำ) โดยคำนึงถึงความสัมพันธ์ทั้งหมดและสามารถสำรวจพื้นที่พารามิเตอร์ที่เกี่ยวข้องทั้งหมด คุณต้องการวิธีการ Monte Carlo เพิ่มสัญญาณรบกวนแบบสุ่มให้กับอินสแตนซ์หลาย ๆ อินพุทของคุณและทำการวิเคราะห์แบบเต็ม แน่นอนนี่อาจหมายความว่าคุณต้องคูณเวลาในการคำนวณของคุณเป็นร้อยหรือเป็นพัน แต่มันขนานกันเสมอ

ดังนั้นในที่สุดทุกอย่างขึ้นอยู่กับสิ่งที่คุณต้องการทำระดับความแม่นยำและจำนวนทรัพยากรที่คุณมี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.