Numpy Moving Average

Numpy Moving Average



ก่อนเริ่มหัวข้อของเรา ให้เราทำความเข้าใจว่าเส้นค่าเฉลี่ยเคลื่อนที่คืออะไร ในสถิติ ค่าเฉลี่ยเคลื่อนที่เป็นเทคนิคในการคำนวณและวิเคราะห์จุดข้อมูล โดยจะคำนวณจุดข้อมูลโดยสร้างชุดค่าเฉลี่ยของชุดย่อยต่างๆ จากชุดข้อมูลทั้งหมด ดังนั้น ค่าเฉลี่ยเคลื่อนที่คือการวัดที่จับการเปลี่ยนแปลงทั่วไปในชุดข้อมูลเมื่อเวลาผ่านไป การย้ายเป็นหนึ่งในตัวชี้วัดการวิเคราะห์ทางเทคนิคที่ยืดหยุ่นและใช้บ่อยที่สุด เนื่องจากมันใช้งานง่ายมาก นักลงทุนมืออาชีพจึงใช้มันเป็นเครื่องมือของชุดข้อมูลในสถิติ เรายังคำนวณเส้นค่าเฉลี่ยเคลื่อนที่ในช่วงเวลาที่สั้นลงได้โดยใช้ข้อมูลรายวันหรือนาที เช่น เมื่อกำหนดเส้นค่าเฉลี่ยเคลื่อนที่ 10 วัน ในกรณีของเรา เราจะเพียงสรุปราคาปิดจากสิบรายการก่อนหน้า วันและหารผลด้วยสิบ ในวันถัดไป เราจะคำนวณราคาในช่วงสิบวันที่ผ่านมาด้วย ซึ่งหมายความว่าเราจะไม่คำนวณราคาของวันแรก มันจะถูกแทนที่ด้วยราคาของเราเมื่อวานนี้ ข้อมูลมีการเปลี่ยนแปลงในลักษณะนี้ทุกวันที่เคลื่อนที่จึงเรียกว่าค่าเฉลี่ยเคลื่อนที่ด้วยเหตุนี้ จุดประสงค์ของเส้นค่าเฉลี่ยเคลื่อนที่คือการกำหนดจุดเริ่มต้นของแนวโน้ม จากนั้นติดตามความคืบหน้าและรายงานการกลับตัวในกรณีที่เกิดขึ้น สูตรคำนวณค่าเฉลี่ยเคลื่อนที่คือ Ft = (Dt1+Dt2+Dt3…+Dtn)/n โดยที่ Dt คืออุปสงค์ในช่วงเวลา t และ Ft คือการคาดการณ์ในเวลา t

ไวยากรณ์:

เราสามารถคำนวณค่าเฉลี่ยเคลื่อนที่ได้หลายวิธีดังนี้

วิธีที่ 1:

นัมปี้. cumsum ( )

ส่งกลับผลรวมขององค์ประกอบในอาร์เรย์ที่กำหนด เราสามารถคำนวณค่าเฉลี่ยเคลื่อนที่ได้โดยการหารผลลัพธ์ของ cumsum() ด้วยขนาดของอาร์เรย์







วิธีที่ 2:

นัมปี้. และ . เฉลี่ย ( )

มีพารามิเตอร์ดังต่อไปนี้



a: ข้อมูลในรูปแบบอาร์เรย์ที่จะนำมาเฉลี่ย



axis: ชนิดข้อมูลเป็น int และเป็นพารามิเตอร์ทางเลือก





น้ำหนัก: เป็นอาร์เรย์และพารามิเตอร์เสริม สามารถมีรูปร่างเดียวกับรูปร่าง 1-D ในกรณีของมิติหนึ่ง ต้องมีความยาวเท่ากับอาร์เรย์ 'a'

โปรดทราบว่าดูเหมือนว่าจะไม่มีฟังก์ชันมาตรฐานใน NumPy ในการคำนวณค่าเฉลี่ยเคลื่อนที่ ดังนั้นสามารถทำได้ด้วยวิธีอื่น



วิธีที่ 3:

อีกวิธีหนึ่งที่สามารถใช้ในการคำนวณค่าเฉลี่ยเคลื่อนที่ได้คือ:

เช่น. convolve ( เอ , ใน , โหมด = 'เต็ม' )

ในไวยากรณ์นี้ a คือมิติข้อมูลป้อนเข้าแรก และ v คือค่ามิติข้อมูลป้อนเข้าที่สอง โหมดเป็นค่าทางเลือก เต็ม เหมือนเดิม และใช้ได้

ตัวอย่าง # 01:

ตอนนี้ เพื่ออธิบายเพิ่มเติมเกี่ยวกับเส้นค่าเฉลี่ยเคลื่อนที่ใน Numpy ให้เรายกตัวอย่าง ในตัวอย่างนี้ เราจะนำค่าเฉลี่ยเคลื่อนที่ของอาร์เรย์ที่มีฟังก์ชัน convolve ของ NumPy ออกมา ดังนั้นเราจะนำอาร์เรย์ 'a' ที่มี 1,2,3,4,5 เป็นองค์ประกอบ ตอนนี้ เราจะเรียกใช้ฟังก์ชัน np.convolve และเก็บเอาต์พุตไว้ในตัวแปร 'b' หลังจากนั้นเราจะพิมพ์ค่าตัวแปร b ของเรา ฟังก์ชันนี้จะคำนวณผลรวมเคลื่อนที่ของอาร์เรย์อินพุตของเรา เราจะพิมพ์ผลลัพธ์เพื่อดูว่าผลลัพธ์ของเราถูกต้องหรือไม่

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

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

นำเข้า งี่เง่า เช่น เช่น.

เอ = [ 1 , สอง , 3 , 4 , 5 ]

= เช่น. convolve ( เอ , เช่น. ones_like ( เอ ) )

พิมพ์ ( 'ผลรวมเคลื่อนที่' , )

ชื่อ = รายการ ( แนว ( 1 , 5 ) ) + รายการ ( แนว ( 5 , 0 , - 1 ) )

พิมพ์ ( 'ตัวหาร' , ชื่อ )

= เช่น. convolve ( เอ , เช่น. ones_like ( เอ ) ) / ชื่อ

พิมพ์ ( 'ค่าเฉลี่ยเคลื่อนที่' , )

หลังจากรันโค้ดของเราสำเร็จแล้ว เราจะได้ผลลัพธ์ดังต่อไปนี้ ในบรรทัดแรก เราได้พิมพ์ “ผลรวม” เราจะเห็นได้ว่าเรามี '1' ที่จุดเริ่มต้นและ '5' ที่ส่วนท้ายของอาร์เรย์ เช่นเดียวกับที่เรามีในอาร์เรย์ดั้งเดิมของเรา ตัวเลขที่เหลือเป็นผลรวมขององค์ประกอบต่างๆ ของอาร์เรย์ของเรา

ตัวอย่างเช่น หกในดัชนีที่สามของอาร์เรย์มาจากการเพิ่ม 1,2 และ 3 จากอาร์เรย์อินพุตของเรา สิบในดัชนีที่สี่มาจาก 1,2,3 และ 4 สิบห้ามาจากการรวมตัวเลขทั้งหมดเข้าด้วยกันเป็นต้น ตอนนี้ ในบรรทัดที่สองของผลลัพธ์ เราได้พิมพ์ตัวส่วนของอาร์เรย์ของเรา

จากผลลัพธ์ของเรา เราจะเห็นได้ว่าตัวส่วนทั้งหมดนั้นแน่นอน ซึ่งหมายความว่าเราสามารถหารพวกมันด้วยอาร์เรย์ผลรวมเคลื่อนที่ของเรา ตอนนี้ ย้ายไปยังบรรทัดสุดท้ายของผลลัพธ์ ในบรรทัดสุดท้าย เราจะเห็นว่าองค์ประกอบแรกของอาร์เรย์ค่าเฉลี่ยเคลื่อนที่ของเราคือ 1 ค่าเฉลี่ยของ 1 คือ 1 ดังนั้นองค์ประกอบแรกของเราจึงถูกต้อง ค่าเฉลี่ยของ 1+2/2 จะเป็น 1.5 เราจะเห็นว่าองค์ประกอบที่สองของอาร์เรย์เอาต์พุตของเราคือ 1.5 ดังนั้นค่าเฉลี่ยที่สองก็ถูกต้องเช่นกัน ค่าเฉลี่ยของ 1,2,3 จะเป็น 6/3=2 ยังทำให้ผลงานของเราถูกต้องอีกด้วย จากผลลัพธ์ เราสามารถพูดได้ว่าเราคำนวณค่าเฉลี่ยเคลื่อนที่ของอาร์เรย์สำเร็จแล้ว

บทสรุป

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