Wednesday, 5 July 2017

Numpy เคลื่อนไหว เฉลี่ย convolve


ฉัน m เขียนฟังก์ชันเฉลี่ยเคลื่อนไหวที่ใช้ฟังก์ชัน convolve ใน numpy ซึ่งควรจะเทียบเท่ากับค่าเฉลี่ยถ่วงน้ำหนักเมื่อน้ำหนักของฉันมีค่าเท่ากับค่าเฉลี่ย arithmatic ทำงานดี แต่เมื่อฉันพยายามใช้ถ่วงน้ำหนัก average. instead ของสำหรับข้อมูลเดียวกัน 3 667,4 667,5 667,6 667 ฉันคาดหวังฉัน get. If ฉันลบธงที่ถูกต้องฉัน don t แม้เห็นค่าที่ถูกต้องผมอยากจะใช้ convolve สำหรับ WMA เช่นเดียวกับแมสซาชูเซตส์ตามที่ทำให้รหัสทำความสะอาดรหัสเดียวกันน้ำหนักที่แตกต่างกันและอื่น ๆ ฉันคิดว่าฉันจะต้องห่วงผ่านข้อมูลทั้งหมดและใช้ slices. Any ความคิดเกี่ยวกับพฤติกรรมนี้ Example. Python ต่อไปนี้เป็นตัวอย่างรหัส 13 สำหรับการแสดง วิธีการใช้พวกเขาจะสกัดจากโครงการ Python แบบโอเพ่นซอร์สคุณสามารถคลิกเพื่อลงคะแนนตัวอย่างที่คุณต้องการหรือคลิกลงคะแนนลงใน exmaples ที่คุณไม่ชอบโหวตของคุณจะถูกใช้ในระบบของเราเพื่อดึงตัวอย่างที่มีคุณภาพสูงกว่าคุณ นอกจากนี้ยังสามารถตรวจสอบฟังก์ชั่นที่มีอยู่ทั้งหมดของโมดูล numpy หรือลองใช้ฟังก์ชั่นค้นหาจากจุดประกายโครงการภายใต้เครื่องมือไดเรกทอรีในแฟ้มต้นฉบับจาก CommPy โครงการภายใต้ไดเรกทอรี commpy channelcoding ในแฟ้มต้นฉบับจาก CommPy โครงการภายใต้ไดเรกทอรี commpy channelcoding ในแฟ้มต้นฉบับจาก pybv โครงการภายใต้ไดเรกทอรี src pybv โลกในแฟ้มแหล่งที่มา จากโครงการ paperwalking ภายใต้ไดเรกทอรีถอดรหัสในไฟล์ต้นฉบับจากโครงการ nupic ภายใต้ภูมิภาค nupic ไดเรกทอรี ImageSensorFilters ในแฟ้มต้นฉบับจากโครงการ clojure-nltk ภายใต้ไดเรกทอรีทรัพยากร nltk tokenize ในแฟ้มต้นฉบับจากโครงการ jazzparser ภายใต้ไดเรกทอรี lib nltk tokenize ในแฟ้มต้นฉบับจากโครงการ facet-calibration-master ภายใต้ directory facet-calibration-pipeline scripts ใน source file จากโครงการ capo ภายใต้ไดเร็กทอรี dcj cals ใน source file จากโครงการ Capitol-Words ภายใต้ cwodat directory cwodapi ใน source file จาก project nltk ภายใต้ directory nltk tokenize ใน source ไฟล์จากโครงการ procgraph ภายใต้ไดเรกทอรี src procgraphnumpyops ในแฟ้มต้นฉบับกรุณาเปิดใช้งาน JavaScript เพื่อ v ความเห็นที่ขับเคลื่อนโดย Disqus. I ทราบว่านี่เป็นคำถามเก่า แต่นี่คือโซลูชันที่ไม่ใช้โครงสร้างข้อมูลหรือไลบรารีพิเศษใด ๆ เป็นข้อมูลเชิงเส้นในจำนวนองค์ประกอบของรายการป้อนข้อมูลและฉันไม่สามารถคิดหาวิธีอื่นใดได้ เพื่อให้มีประสิทธิภาพมากขึ้นจริงถ้าใครรู้วิธีที่ดีกว่าในการจัดสรรผลโปรดแจ้งให้เราทราบทราบว่านี้จะเร็วมากโดยใช้ array numpy แทนรายการ แต่ฉันต้องการกำจัด dependencies ทั้งหมดก็จะเป็นไปได้ เพื่อปรับปรุงประสิทธิภาพโดยการดำเนินการแบบมัลติเธรดฟังก์ชั่นสมมติว่ารายการอินพุทเป็นหนึ่งมิติดังนั้นโปรดระวัง UPD มีประสิทธิภาพมากขึ้นได้รับการเสนอโซลูชั่นโดย Alleo และ jasaarim คุณสามารถใช้สำหรับอาร์กิวเมนต์โหมดที่ระบุวิธีการจัดการ ขอบฉันเลือกโหมดที่ถูกต้องที่นี่เพราะฉันคิดว่าเป็นวิธีที่คนส่วนใหญ่คาดหวังว่าการทำงานหมายถึงการทำงาน แต่คุณอาจมีความสำคัญอื่น ๆ นี่คือพล็อตที่แสดงให้เห็นถึงความแตกต่างระหว่างโหมดที่มี 24 มี.ค. 14 ที่ 22 01.I เช่นนี้ วิธีการแก้ เพราะเป็นเส้นเดียวที่สะอาดและทำงานได้ดีภายใน Numpy แต่การแก้ปัญหาที่มีประสิทธิภาพ Alleo s ใช้มีความซับซ้อนที่ดีขึ้น Ulrich Stern 25 ก. ย. 15 ที่ 0 31 คุณสามารถคำนวณค่าเฉลี่ยในการทำงานได้ด้วยโชคดีที่ numpy มีฟังก์ชัน convolve ที่เราสามารถใช้ได้ ความเร็วในการทำงานหมายถึงค่าที่เทียบเท่ากับ convolving x กับเวกเตอร์ที่มี N ยาวโดยสมาชิกทั้งหมดเท่ากับ 1 N การดำเนินการแบบ numpy ของ convolve รวมถึงการเริ่มต้นชั่วคราวดังนั้นคุณต้องลบคะแนน N-1 แรกออกไป เครื่องของฉันรุ่นที่รวดเร็วเป็น 20-30 ครั้งเร็วขึ้นอยู่กับความยาวของเวกเตอร์อินพุทและขนาดของหน้าต่างเฉลี่ยหมายเหตุว่า convolve จะมีโหมดเดียวกันซึ่งดูเหมือนว่าควรจะอยู่ปัญหาชั่วคราวชั่วคราว แต่แยก ระหว่างจุดเริ่มต้นและจุดสิ้นสุดมันเอาชั่วคราวจากปลายและจุดเริ่มต้น doesn t มีหนึ่งฉันคิดว่ามันเป็นเรื่องของลำดับความสำคัญฉัน don t ต้องจำนวนเดียวกันของผลค่าใช้จ่ายในการรับความลาดชันไป zer o ที่ไม่มีอยู่ในข้อมูล BTW นี่คือคำสั่งเพื่อแสดงความแตกต่างระหว่างโหมดโหมดเต็มรูปแบบเดียวกันแปลงที่ถูกต้อง convolve คน 200, คน 50, 50, โหมด m สำหรับ m ในโหมดแกน -10, 251, - 1, 1 1 โหมดตำนาน loc ศูนย์ล่างกับ pypot นำเข้าและ numpy นำเข้า lapis 24 มี.ค. ที่ 13 56.pandas เหมาะสำหรับการนี้กว่า NumPy หรือ SciPy ฟังก์ชัน rollingmean มันไม่ได้งานสะดวกนอกจากนี้ยังส่งกลับอาร์เรย์ NumPy เมื่อใส่ เป็น array. It เป็นเรื่องยากที่จะชนะ rollingmean ในการปฏิบัติงานใด ๆ ที่กำหนดเอง Python บริสุทธิ์นี่คือประสิทธิภาพตัวอย่างกับสอง solutions. There เสนอยังมีตัวเลือกที่ดีเป็นวิธีการจัดการกับค่าขอบฉันรำคาญเสมอโดย ฟังก์ชันการประมวลผลสัญญาณที่ส่งกลับสัญญาณขาออกที่มีรูปร่างแตกต่างจากสัญญาณอินพุทเมื่อทั้งอินพุทและเอาท์พุทมีลักษณะเช่นเดียวกันเช่นสัญญาณทั้งสองชั่วระยะเวลาจะหยุดการติดต่อกับตัวแปรอิสระที่เกี่ยวข้องเช่นเวลาการวางแผนหรือการเปรียบเทียบความถี่ หากคุณแบ่งปันความรู้สึกนี้คุณอาจต้องการเปลี่ยนบรรทัดสุดท้ายของฟังก์ชันที่เสนอเป็นผลตอบแทนเดียวกัน y windowlen-1 - windowlen-1 Christian O Reilly 25 ส. ค. 15 ที่ 19 56. เล็กน้อยไปงานปาร์ตี้ แต่ฉันได้ทำหน้าที่ของตัวเองเล็กน้อยของฉันที่ไม่ห่อรอบปลายหรือแผ่นที่มี zeroes ที่ใช้แล้วเพื่อหาค่าเฉลี่ยรวมทั้งการรักษาต่อไปคือว่ายังใหม่ตัวอย่างสัญญาณที่จุดเว้นระยะเชิงเส้นปรับแต่ง รหัสที่จะได้รับคุณสมบัติอื่น ๆ วิธีการคือการคูณเมทริกซ์ง่ายๆกับปกติ Gaussian เคอร์เนลการใช้งานง่ายในสัญญาณไซน์ที่มีการกระจายเสียงรบกวนปกติคำถามนี้ตอนนี้ก็ยังแก่กว่าเมื่อ NeXuS เขียนเกี่ยวกับเรื่องนี้เมื่อเดือนที่แล้ว ฉันชอบวิธีการรหัสของเขาเกี่ยวข้องกับกรณีขอบ แต่เนื่องจากเป็นค่าเฉลี่ยเคลื่อนที่ง่ายก็ผลล่าช้าหลังข้อมูลที่ใช้กับฉันคิดว่าการจัดการกับกรณีขอบในทางพอใจมากกว่าโหมด NumPy s ถูกต้องเหมือนกันและเต็มสามารถ สามารถทำได้โดยการใช้ si milar วิธีการวิธีการตาม convolutionMy ผลงานของฉันใช้ค่าเฉลี่ยกลางทำงานเพื่อจัดผลของกับข้อมูลของพวกเขาเมื่อมีสองจุดไม่กี่ใช้ได้สำหรับหน้าต่างขนาดเต็มที่จะใช้เฉลี่ยวิ่งเฉลี่ยจากหน้าต่างเล็ก ๆ ที่ขอบ ของอาร์เรย์จริงจากหน้าต่างที่ใหญ่กว่าอย่างต่อเนื่อง แต่ที่รายละเอียดการดำเนินงานของมันค่อนข้างช้าเพราะใช้ convolve และอาจจะ spruced ขึ้นค่อนข้างมากโดย Pythonista จริง แต่ผมเชื่อว่าแนวคิด stands. answered Jan 2 ที่ 0 28 จะดี แต่ช้าเมื่อความกว้างของหน้าต่างเติบโตใหญ่คำตอบบางให้มากขึ้นขั้นตอนวิธีที่มีประสิทธิภาพ แต่ดูเหมือนไม่สามารถจัดการค่าขอบฉันเองได้ใช้ขั้นตอนวิธีที่อาจจัดการกับปัญหานี้ได้ดีถ้าปัญหานี้มีการประกาศ as. Input พารามิเตอร์ mergenum สามารถคิดเป็น 2 windowwidth 1.I ทราบรหัสนี้เล็กน้อยอ่านไม่ได้ถ้า u พบว่ามีประโยชน์และต้องการ expanations บางโปรดแจ้งให้เราทราบและฉันจะปรับปรุงคำตอบนี้ซิน e เขียนคำอธิบายอาจเสียค่าใช้จ่ายฉันมากเวลาฉันหวังว่าฉันจะทำเฉพาะเมื่อมีคนต้องการมันกรุณาให้อภัยฉันสำหรับความเกียจคร้านของฉันหากเพียง u มีความสนใจใน version. It เดิมของมันมากยิ่งขึ้นไม่สามารถอ่านได้แก้ปัญหาแรกได้รับการกำจัดของขอบ ปัญหาโดย padding ศูนย์เกี่ยวกับอาร์เรย์ แต่ทางออกที่สองโพสต์ที่นี่จับมันในทางที่เหนียวและตรงในประโยคสุดท้ายของฉันฉันพยายามที่จะระบุว่าทำไมมันจะช่วยให้ข้อผิดพลาดจุดลอยถ้าสองค่าประมาณประมาณเดียวกันของขนาดแล้ว เพิ่มพวกเขาสูญเสียความแม่นยำน้อยกว่าถ้าคุณเพิ่มจำนวนมากมากในขนาดเล็กมากรหัสรวมค่าที่อยู่ติดกันในลักษณะที่แม้ผลรวมกลางควรจะมีเหตุผลอย่างใกล้ชิดในขนาดเพื่อลดข้อผิดพลาดจุดลอยไม่มีอะไรพิสูจน์โง่ แต่นี้ วิธีการได้บันทึกสองโครงการดำเนินการไม่ดีมากในการผลิต Mayur Patel 15 ธันวาคม 14 ที่ 17 22 Alleo แทนการทำหนึ่งนอกจากต่อค่าคุณจะทำสองหลักฐานเป็นเช่นเดียวกับพลิก proble บิต แต่ความแม่นยำการใช้หน่วยความจำสำหรับค่าเฉลี่ย 64 บิตจะไม่เกิน 64 องค์ประกอบในแคชดังนั้นจึงเป็นมิตรในการใช้หน่วยความจำเช่นกัน Mayur Patel 29 ธ . ค. 14 ที่ 17 04

No comments:

Post a Comment