อืมดูเหมือนว่าง่ายที่จะใช้ฟังก์ชันนี้เป็นเรื่องง่ายสวยผิดและส่งเสริมการอภิปรายที่ดีเกี่ยวกับประสิทธิภาพของหน่วยความจำฉัน m ยินดีที่จะมีการขยายตัวถ้ามันหมายถึงรู้ว่าสิ่งที่ได้รับการทำถูกริชาร์ด 20 กันยายน 14 ที่ 19 23.NumPy การขาดการทำงานเฉพาะโดเมนโดยเฉพาะอาจเนื่องมาจากหลักเกณฑ์ของ Core Team และความจงรักภักดีต่อคำสั่ง NumPy s prime ให้มีประเภทอาร์เรย์ N มิติรวมถึงฟังก์ชันสำหรับการสร้างและการจัดทำดัชนีอาร์เรย์เหล่านี้เช่นเดียวกับวัตถุประสงค์พื้นฐานหลายประการ ไม่เล็กและ NumPy ไม่เก่ง. SciPy มีขนาดใหญ่กว่ามากมีห้องสมุดเฉพาะโดเมนที่เรียกว่า subpackages โดย SciPy devs เช่นการเพิ่มประสิทธิภาพการเพิ่มประสิทธิภาพเชิงตัวเลข signaling signal signaling และการคำนวณแคลคูลัสรวม ว่าฟังก์ชันที่คุณใช้หลังจากอยู่ในกลุ่มย่อย SciPy อย่างน้อยหนึ่งอย่างอาจเป็นอย่างไรก็ตามฉันจะดูเป็นครั้งแรกในชุด SciPy scikits ระบุ scikit ที่เกี่ยวข้องและมองหา ฟังก์ชั่นที่น่าสนใจมีโปรแกรม SciPy พัฒนาขึ้นมาเองโดยใช้โปรแกรม NumPy SciPy และนำไปสู่วินัยทางด้านเทคนิคโดยเฉพาะเช่น scikits-image scikits-learn ฯลฯ หลาย ๆ คนโดยเฉพาะ OpenOpt น่ากลัวสำหรับการเพิ่มประสิทธิภาพเชิงตัวเลข ก่อนที่จะเลือกที่จะอาศัยอยู่ภายใต้ค่าความนิยม scikits ใหม่หน้าแรกของ Scikits ชอบรายการข้างต้นประมาณ 30 scikits ดังกล่าวแม้ว่าอย่างน้อยหลายคนจะไม่อยู่ภายใต้การพัฒนาที่ใช้งานต่อไปนี้คำแนะนำจะนำคุณไป scikits-timeseries แต่แพคเกจที่ไม่มี อีกต่อไปภายใต้การพัฒนาที่ใช้งาน Pandas ได้กลายเป็น AFAIK, the facto NumPy-based series library เวลา. มีหลายฟังก์ชันที่สามารถใช้ในการคำนวณค่าเฉลี่ยเคลื่อนที่ที่ง่ายที่สุดของเหล่านี้น่าจะเป็น rollingmean ที่คุณใช้เช่นเดียวกับตอนนี้ เพียงเรียกใช้ฟังก์ชัน rollingmean ที่ส่งผ่านไปยังชุดข้อมูลและขนาดของหน้าต่างซึ่งในตัวอย่างด้านล่างของฉันคือ 10 วันตรวจสอบว่า w orked - เช่นค่าที่เทียบกัน 10 - 15 ในชุดต้นฉบับกับชุดใหม่เรียบด้วยความหมายกลิ้ง. ฟังก์ชัน rollingmean พร้อมกับประมาณหนึ่งโหลหรืออื่น ๆ ฟังก์ชันจะถูกจัดกลุ่มอย่างไม่เป็นทางการในเอกสาร Pandas ภายใต้รูเล็ตย้ายหน้าต่างทำงานที่สอง. , กลุ่มที่เกี่ยวข้องของฟังก์ชันใน Pandas เรียกว่าฟังก์ชันที่มีการยกกำลังยกตัวอย่างเช่น ewma ซึ่งคำนวณค่าเฉลี่ยถ่วงน้ำหนักที่ชี้แจงข้อเท็จจริงความจริงที่ว่ากลุ่มที่สองนี้ไม่ได้รวมอยู่ในฟังก์ชันการเคลื่อนย้ายหน้าต่างแรกอาจเป็นเพราะการแปลงแบบทวีคูณเป็นหลัก ความยาวคงที่ window. answered 14 ม. ค. 13 ที่ 6 38. ฉันรู้ว่านี่เป็นคำถามเก่า แต่นี่คือโซลูชันที่ doesn t ใช้โครงสร้างข้อมูลใด ๆ หรือห้องสมุดเป็นเชิงเส้นในจำนวนองค์ประกอบของรายการเข้าและ ฉันไม่สามารถคิดวิธีอื่นใดเพื่อให้มีประสิทธิภาพมากขึ้นจริงถ้าใครรู้วิธีที่ดีกว่าในการจัดสรรผลโปรดแจ้งให้เราทราบ. นี้จะเร็วมากโดยใช้ numpy arr. ay แทนรายการ แต่ฉันต้องการกำจัด dependencies ทั้งหมดนอกจากนี้ยังจะเป็นไปได้ในการปรับปรุงประสิทธิภาพโดยการดำเนินการแบบมัลติเธรดฟังก์ชั่นสมมติว่ารายการอินพุทเป็นหนึ่งมิติดังนั้นต้องระมัดระวัง OPD โซลูชั่นที่มีประสิทธิภาพมากขึ้นได้รับการเสนอโดย Alleo และ jasaarim. You สามารถใช้สำหรับอาร์กิวเมนต์โหมดที่ระบุวิธีการจัดการขอบฉันเลือกโหมดที่ถูกต้องที่นี่เพราะฉันคิดว่าเป็นวิธีที่คนส่วนใหญ่คาดหวังทำงานหมายถึงการทำงาน แต่คุณอาจมีความสำคัญอื่น ๆ นี่คือพล็อตที่ แสดงให้เห็นถึงความแตกต่างระหว่างโหมดตอบ 24 มีนาคมที่ 22 01. ฉันชอบแก้ปัญหานี้เพราะเป็นเส้นเดียวที่สะอาดและทำงานที่มีประสิทธิภาพค่อนข้างทำภายใน Numpy แต่ Alleo s โซลูชั่นที่มีประสิทธิภาพโดยใช้มีความซับซ้อนที่ดีขึ้น Ulrich Stern 25 ก. ย. 15 ที่ 0 31 คุณสามารถคำนวณค่าเฉลี่ยในการทำงานได้ด้วยโชคดีที่ numpy มีฟังก์ชัน convolve ที่เราสามารถใช้เพื่อเพิ่มความเร็วได้ค่า mean run เท่ากับ convolving x กับเวกเตอร์ที่ยาว N โดยมีสมาชิกเท่ากับ 1 N การดำเนินการ numpy ของ convolve รวมถึงชั่วคราวเริ่มต้นดังนั้นคุณต้องลบจุดแรก N-1 ในเครื่องของฉันรุ่นรวดเร็วเป็น 20-30 ครั้งเร็วขึ้นอยู่กับความยาวของเวกเตอร์อินพุทและขนาดของหน้าต่างเฉลี่ย หมายเหตุว่า convolve จะรวมถึงโหมดเดียวกันซึ่งดูเหมือนว่าควรจะอยู่ปัญหาชั่วคราวเริ่มต้น แต่แยกระหว่างจุดเริ่มต้นและ end. It เอาชั่วคราวจากปลายและจุดเริ่มต้น doesn t มีหนึ่งฉันคิดว่ามัน เรื่องของลำดับความสำคัญฉัน don t ต้องจำนวนเดียวกันของผลค่าใช้จ่ายในการรับความลาดชันไปทางศูนย์ที่ isn t มีในข้อมูล BTW นี่คือคำสั่งเพื่อแสดงความแตกต่างระหว่างโหมดโหมดเต็มรูปแบบเดียวกันพล็อตที่ถูกต้อง convolve คน 200, คน 50, 50, โหมด m สำหรับ m ในโหมดแกน -10, 251, - 1, 1 1 โหมดตำนาน loc ศูนย์ล่างกับ pyplot และ numpy lapis นำเข้า มี.ค. 24 14 ที่ 13 56.pandas จะเหมาะสมกว่า สำหรับนี้กว่า NumPy หรือ SciPy ฟังก์ชัน rollingmean ทำงานได้สะดวก ly นอกจากนี้ยังส่งกลับอาร์เรย์ NumPy เมื่อใส่เป็น array. It เป็นเรื่องยากที่จะชนะ rollingmean ในการปฏิบัติงานใด ๆ ที่กำหนดเอง Python บริสุทธิ์นี่คือประสิทธิภาพตัวอย่างกับสอง solutions. There เสนอยังมีตัวเลือกที่ดีเป็นวิธีการจัดการ มีค่าขอบ I m รำคาญเสมอโดยฟังก์ชันการประมวลผลสัญญาณที่ส่งกลับสัญญาณขาออกของรูปร่างที่แตกต่างจากสัญญาณอินพุตเมื่อทั้งสองปัจจัยการผลิตและผลมีลักษณะเดียวกันเช่นสัญญาณทั้งสองชั่วขณะมันแบ่งการติดต่อกับตัวแปรอิสระที่เกี่ยวข้องเช่นเวลาความถี่ ถ้าคุณแบ่งปันความรู้สึกคุณอาจต้องการเปลี่ยนบรรทัดสุดท้ายของฟังก์ชันที่เสนอเป็นผลตอบแทนที่เหมือนกัน y windowlen-1 - windowlen-1 Christian O Reilly 25 ส. ค. 15 ที่ 19 56.A bit ปลายพรรค แต่ฉันได้ทำหน้าที่ของตัวเองเล็กน้อยของฉันที่ไม่ห่อรอบปลายหรือแผ่นที่มี zeroes ที่ใช้แล้วเพื่อหาค่าเฉลี่ยรวมทั้งการรักษาต่อไปคือว่ายัง อีกตัวอย่างสัญญาณที่จุดเว้นระยะเชิงเส้นปรับแต่งโค้ดที่จะได้รับคุณสมบัติอื่น ๆ วิธีการคือการคูณเมทริกซ์อย่างง่ายกับเคอร์เนล Gaussian normalized การใช้งานง่ายในสัญญาณไซน์ที่มีการกระจายเสียงรบกวนปกติคำถามนี้คือตอนนี้แม้ เก่ากว่าเมื่อ NeXuS เขียนเกี่ยวกับเรื่องนี้เมื่อเดือนที่แล้ว แต่ฉันชอบวิธีการรหัสของเขาเกี่ยวข้องกับกรณีขอบ แต่เนื่องจากเป็นค่าเฉลี่ยเคลื่อนที่ง่ายก็ผล lag หลังข้อมูลที่ใช้กับฉันคิดว่าการจัดการกับกรณีขอบในอีก วิธีที่น่าพอใจกว่าโหมด NumPy ที่ถูกต้องเหมือนกันและเต็มรูปแบบสามารถทำได้โดยการใช้วิธีการที่คล้ายกับวิธีการที่ใช้วิธีการชักนำการมีส่วนร่วมของฉันใช้ค่าเฉลี่ยในการทำงานกลางเพื่อจัดผลลัพธ์ให้กับข้อมูลของตนเมื่อมีสองจุดที่ใช้ได้สำหรับขนาดเต็ม หน้าต่างที่จะใช้ค่าเฉลี่ยที่ทำงานจะคำนวณจากหน้าต่างเล็ก ๆ ที่ต่อเนื่องที่ขอบของอาร์เรย์ที่จริงจากหน้าต่างที่ใหญ่กว่าอย่างต่อเนื่อง แต่ที่รายละเอียดการดำเนินงานของมันค่อนข้างช้า เพราะใช้ convolve และอาจจะ spruced ขึ้นค่อนข้างมากโดย Pythonista จริง แต่ผมเชื่อว่าแนวคิด stands. answered 2 มกราคมที่ 0 28 เป็นสิ่งที่ดี แต่ช้าเมื่อความกว้างของหน้าต่างเติบโตใหญ่คำตอบบางอย่างให้ขั้นตอนวิธีที่มีประสิทธิภาพมากขึ้น กับ แต่ดูเหมือนไม่สามารถจัดการค่าขอบฉันเองได้ใช้ขั้นตอนวิธีที่อาจจัดการกับปัญหานี้ได้ดีถ้าปัญหานี้ได้รับการประกาศเป็น mergenum parameter. Input สามารถคิดเป็น 2 windowwidth 1.I ทราบรหัสนี้ไม่สามารถอ่านได้เล็กน้อยถ้า u พบว่ามีประโยชน์และต้องการ expanations บางโปรดแจ้งให้เราทราบและฉันจะ update คำตอบนี้ตั้งแต่เขียนคำอธิบายอาจเสียค่าใช้จ่ายฉันมากเวลาฉันหวังว่าฉันจะทำเฉพาะเมื่อมีคนต้องการมันกรุณาให้อภัยฉันสำหรับความเกียจคร้านของฉันถ้าเพียง u เป็น สนใจใน version. It เดิมของมันมากยิ่งขึ้นไม่สามารถอ่านได้แก้ปัญหาแรกได้รับการกำจัดปัญหาขอบโดยช่องว่างภายในรอบ แต่โซลูชั่นที่สองโพสต์ที่นี่จัดการกับมันในทางที่ยากและโดยตรงในประโยคสุดท้ายของฉันฉันพยายามที่จะบ่งชี้ ทำไมมันช่วยให้ข้อผิดพลาดจุดลอยถ้าสองค่าประมาณลำดับเดียวกันของขนาดแล้วเพิ่มพวกเขาสูญเสียความแม่นยำน้อยกว่าถ้าคุณเพิ่มจำนวนมากไปมากขนาดเล็กรหัสรวมค่าที่อยู่ติดกันในลักษณะที่แม้ผลรวมกลางควร มักจะใกล้ชิดในขนาดเพื่อลดข้อผิดพลาดจุดลอยไม่มีหลักฐานอะไรโง่ แต่วิธีนี้ได้บันทึกคู่โครงการดำเนินการไม่ดีมากในการผลิต Mayur Patel 15 ธันวาคม 14 ที่ 17 22. Alleo แทนการทำหนึ่งนอกจากต่อค่าคุณ ll จะทำสองพิสูจน์เป็นเช่นเดียวกับปัญหา bit-flipping แต่จุดของคำตอบนี้ไม่จำเป็นต้องประสิทธิภาพ แต่ความแม่นยำใช้หน่วยความจำเฉลี่ย 64 บิตค่าจะไม่เกิน 64 องค์ประกอบในแคชจึงเป็นมิตร การใช้หน่วยความจำเช่นกัน Mayur Patel 29 ธ. ค. ที่ผ่านมา 17 04 ตัวอย่างต่อไปนี้สร้างค่าเฉลี่ยเคลื่อนที่ของค่า WINDOW ก่อนหน้าเราตัดค่าแรกของ Windows 1 ออกเนื่องจากเราสามารถหาค่าเฉลี่ยก่อน t hem พฤติกรรมเริ่มต้นสำหรับ convolution คือสมมติว่าค่าก่อนการเริ่มต้นของลำดับของเราคือ 0 เพิ่มเติม formally เราสร้างลำดับ y สำหรับลำดับ x ที่ yi xi xi 1 xin n. This ใช้ฟังก์ชัน numpy s convolution นี่คือ วัตถุประสงค์ทั่วไปเพื่อย้ายการดำเนินการเฉลี่ยการเปลี่ยนน้ำหนักทำให้ค่าที่สำคัญกว่าการหักล้างอย่างเหมาะสมช่วยให้คุณสามารถดูค่าเฉลี่ยเป็นจุด ๆ มากกว่าจุดก่อนแทนที่จะตัดทอนค่าเราสามารถกำหนดค่าเริ่มต้นได้ตามที่แสดงในตัวอย่างนี้
No comments:
Post a Comment