หลักสูตรการพัฒนาด้วย Python ขั้นสูง
บทที่
>
ระดับ
โมดูลคณิตศาสตร์
โมดูลสถิติ
วัตถุประสงค์
เดินลงไปที่สำนักงานและบันทึกข้อมูลสถิติสำหรับมาตรวัดฟาร์มโดยใช้โมดูลสถิติ
ลงบันไดจากห้องใต้หลังคาจะมีสำนักงาน ที่นั่นมีไฟล์ที่เก็บข้อมูลสำคัญสำหรับฟาร์ม การประมวลผลข้อมูลเหล่านั้นและบันทึกเอกสารไว้เพื่อการคาดการณ์การเติบโตในอนาคตของฟาร์มจะเป็นความคิดที่ดี ในการทำเช่นนี้ เราจะใช้โมดูลสถิติ โมดูลเป็นเครื่องมือที่ให้เรานำเข้าเครื่องมือต่าง ๆ เช่น ฟังก์ชัน, คลาส และอื่น ๆ เพื่อเพิ่มความสามารถให้กับ Python ในการตั้งค่าโมดูล คุณเพียงแค่เขียน import นำหน้าชื่อของโมดูล ใช่แล้ว คุณได้ใช้โมดูลในการควบคุมผู้เล่นมาตลอด!
import statistics
โมดูลนี้มีฟังก์ชันหลายตัวสำหรับคำนวณสถิติ ซึ่งฟังก์ชันบางตัวที่เราจะใช้ประมวลผลข้อมูลสถิติในสำนักงานมีดังนี้:
statistics.mean(): คำนวณค่าเฉลี่ยของชุดข้อมูลstatistics.median(): คำนวณค่ากลางของชุดข้อมูลstatistics.median_low(): คำนวณค่ามัธยฐานต่ำสุดของชุดข้อมูลstatistics.median_high(): คำนวณค่ามัธยฐานสูงสุดของชุดข้อมูลstatistics.mode(): คำนวณแนวโน้มศูนย์กลางของชุดข้อมูล กล่าวคือ ค่าที่พบมากที่สุดในตัวอย่างข้อมูลstatistics.variance(): คำนวณความแปรปรวนของค่าภายในชุดข้อมูล ค่าสูงแสดงว่าข้อมูลกระจายตัวกว้าง ค่าต่ำแสดงว่าข้อมูลอยู่ใกล้กัน
เริ่มต้นด้วยการเดินไปที่จุดเครื่องหมาย X ที่มีแสงอยู่หน้าตู้เก็บไฟล์ ใช้ฟังก์ชัน read() เพื่อตรวจสอบไฟล์และอ่านข้อมูล มีรายงานทั้งหมดสาม (3) รายงานให้อ่านในฟิลด์ สร้างรายชื่อ (list) สาม (3) รายการเพื่อเก็บข้อมูลสำหรับแต่ละรายงาน ได้แก่ weather_report, export_report และ harvest_report ข้อมูลในแต่ละรายงานประกอบด้วยค่าหก (6) ค่า ซึ่งแทนข้อมูลของหก (6) เดือนแรกของปี เมื่ออ่านข้อมูลแล้วให้จดและเก็บค่าทั้งหก (6) ไว้ในแต่ละรายการ
เมื่อคุณจดและเก็บข้อมูลในรายการแล้ว ให้เดินไปที่จุดเครื่องหมาย X สีเข้มเหนือพรมสีน้ำเงิน สร้างตัวแปรห้าตัวที่มีชื่อว่า mean, median, low, high และ variance ตัวแปรเหล่านี้จะเก็บค่าที่ได้จากฟังก์ชันสถิติที่เราได้กล่าวไว้ก่อนหน้านี้ สิ่งที่เราจะทำคือเพิ่มรายการของรายงานที่เราต้องการคำนวณสถิติ ซึ่งจะทำให้ได้ข้อมูลสถิติสำหรับข้อมูลที่มีอยู่
mean = statistics.mean( report list ) median = statistics.median( report list ) low = statistics.median_low( report list ) high = statistics.median_high( report list ) variance = statistics.variance( report list )
ด้วยข้อมูลสถิติเหล่านี้ เราจะใช้ฟังก์ชัน write() เพื่อจดบันทึกข้อมูลลงในบันทึกย่อ โดยตัวแก้ไขโค้ดจะมีลำดับคำสั่งที่เขียนไว้ล่วงหน้า อยู่บนจุดเครื่องหมาย X พรมสีน้ำเงิน ให้วาดโครงตัวแปรสำหรับ export_report และจดบันทึกไว้ อยู่บนจุดเครื่องหมาย X พรมสีเขียว ให้วาดโครงตัวแปรสำหรับ harvest_report และจดบันทึกไว้ อยู่บนจุดเครื่องหมาย X พรมสีแดง ให้วาดโครงตัวแปรสำหรับ weather_report และจดบันทึกไว้ คุณต้องเติมข้อมูลให้กับตัวแปรในแต่ละรายงานก่อนจึงจะจดบันทึกข้อมูลสถิติที่ถูกต้องสำหรับแต่ละรายงานได้
เมื่อข้อมูลสถิติทั้งหมดถูกบันทึกแล้ว ให้เดินไปที่จุดเครื่องหมาย X สีทอง และสร้างรายการใหม่ชื่อ group_report ในรายการนี้คุณจะเพิ่ม export_report และ harvest_report ตามลำดับ ซึ่งจะสร้างรายการซ้อนที่ไม่สามารถนำไปใช้กับฟังก์ชันสถิติได้ เพื่อแก้ไขปัญหานี้ ให้ใช้ List comprehension เพื่อทำให้รายการซ้อนเป็นรายการเดียว ดังนี้: group_report= [item for sublist in group_report for item in sublist]
ตั้งค่าตัวแปรเพิ่มอีกสองตัว คือ variance และ mode โดยใช้ฟังก์ชันสถิติที่เกี่ยวข้อง เพิ่มรายการ group_report เข้าไปในฟังก์ชันคำนวณความแปรปรวน และเพิ่มรายการ weather_report เข้าไปในฟังก์ชันคำนวณโหมด ดังนี้: variance = statistics.variance( group_report ), mode = statistics.mode( weather_report ) รันฟังก์ชัน write() ที่ตั้งค่าไว้ในตัวแก้ไขโค้ดสำหรับตัวแปรเหล่านี้เพื่อทำให้ระดับนี้สมบูรณ์