Python พื้นฐานสำหรับ Data Science
ใน Python เรามีข้อมูลหลายประเภทที่พบมากที่สุดคือ float , int, str , bool , list และ dict
float — ใช้สำหรับจำนวนจริง
int — ใช้สำหรับจำนวนเต็ม
STR — ใช้สำหรับข้อความ
Bool — ใช้สำหรับค่าความจริง มีประโยชน์ในการดำเนินการกรองข้อมูล
List — ใช้เพื่อจัดเก็บชุดของค่า
dict — ใช้เก็บข้อมูลที่สามารถใช้บางอย่างที่สามารถจำแนกข้อมูลออกจากกันได้
เราสามารถใช้ type(variable_name) เรียกฟังก์ชั่นเพื่อตรวจสอบประเภทของตัวแปรเฉพาะ ตัวดำเนินการใน Python จะทำงานแตกต่างกันไปตามประเภทของตัวแปรและมีวิธีการใช้งานในตัวที่แตกต่างกันสำหรับแต่ละของข้อมูล
ที่นี่เราสามารถดูตัวอย่างจากภาพด้านล่างได้ด้วยการสร้าง float , intergers, string และ booleans ใน Python ครับ
Python Lists
คำสั่ง list ใน Python เป็นคำสั่งขั้นพื้นฐาน เราสามารถใช้เพื่อเก็บสะสมค่าต่างๆ list List นั้นเป็นตัวแปรประเภทหนึ่ง การใช้งานของมันจะเหมือนกับ Array ในภาษาอื่นๆ ในการประกาศ List นั้นข้อมูลของมันจะอยู่ภายในเครื่องหมาย [] และคั่นสมาชิกแต่ละตัวด้วยเครื่องหมาย คอมมา( , ) มาดูตัวอย่างการประกาศ List ในภาษา Python กันครับ
fruits = ["pineapple", "apple", "lemon", "strawberry", "orange", "kiwi"]
การเข้าถึงข้อมูลภายใน List
List นั้นใช้ Index สำหรับการเข้าถึงข้อมูล โดย Index ของ List จะเป็นจำนวนเต็มที่เริ่มจาก 0 และเพิ่มขึ้นทีละ 1 ไปเรื่อยๆ ดังนั้น เราจึงสามารถเข้าถึงข้อมูลภายใน List เพื่ออ่านหรืออัพเดทค่าได้โดยตรงผ่าน Index ของมัน ซึ่งเป็นโค้ดการเข้าถึงข้อมูลภายใน List ในภาษา Python
ในตัวอย่าง เรามีตัวแปร List ที่ชื่อว่า fruits ดังนั้น เพื่อเข้าถึงสมาชิกตัวแรกภายใน List ซึ่งก็คือ “pineapple “นั้นจะใช้คำสั่ง fruit[0] และสมาชิกที่มีค่าเป็น “strawberry” ซึ่งอยู่ตำแหน่งที่ 4 จะใช้คำสั่ง fruit[3] สังเกตว่า Index จะลดลงหนึ่งเพราะ Index ของ List นั้นเริ่มต้นจาก 0
แต่จาก Code ด้านบนอาจจะสงสัยกับตัวเลขที่มีค่าเป็นลบ เพราะเราสามารถเข้าถึงข้อมูลภายใน List โดยการใช้ Index เป็นจำนวนลบได้ โดยเริ่มจาก -1 ซึ่งเป็นสมาชิกตัวสุดท้ายของ List และ -2 สมาชิกตัวถัดมาและลดลงไปทีละ 1 ตามลำดับครับ
List Manipulation
ในตัวอย่างรูปภาพด้านล่าง เป็นการกำหนดค่าให้กับ List หลังจากที่มันถูกสร้างแล้ว เราใช้ append() เพื่อเพิ่มข้อมูลใหม่เข้าไปใน List ซึ่งข้อมูลที่เพิ่มเข้าจะอยู่ท้ายสุดและเรียง Index เพิ่มขึ้นไปเรื่อยๆ โดยเริ่มจาก 0 ในตัวแปร fruit เราได้เพิ่ม peach เข้าไปใน List
เราสามารถเปลี่ยนแปลงข้อมูลเพื่อแสดงจาก List โดยใช้วง [] แบบเดียวกับที่เราใช้สำหรับการทำการแบ่งส่วนข้อมูลใน List แล้ว เรายังสามารถลบข้อมูลใน List ได้อีกด้วยโดยใช้คำสั่ง remove(value)วิธีนี้เราจะสามารถลบข้อมูลจากใน List ที่มีค่าตามที่เราได้ระบุลงไป
สิ่งสำคัญเราต้องเข้าใจว่าคำสั่ง list ทำงานอย่างไร ใน Python เมื่อคุณสร้าง List ใหม่ my_list คุณจะเก็บรายการไว้ในหน่วยความจำคอมพิวเตอร์ของคุณและที่อยู่ของรายการนั้นจะถูกเก็บไว้ใน list ตัวแปร หากเราคัดลอกรายการที่มี my_list_copy = my_list คุณจะมีการคัดลอกข้อมูลอ้างอิงใน my_list_copy ตัวแปรแทนที่จะเป็นค่า List ดังนั้นหากคุณต้องการคัดลอกค่าจริงคุณสามารถใช้ list(my_list)ฟังก์ชั่นหรือการแบ่ง[:]ส่วน ตามภาพด้านล่างจะเข้าใจมากขึ้นครับ
Python Dictionaries
Dictionary คือประเภทข้อมูลที่เก็บข้อมูลในรูปแบบคู่ของ Key และ Value โดยที่ Key ใช้สำหรับเป็น Index ในการเข้าถึงข้อมูลและ Value เป็นค่าข้อมูลที่สอดคล้องกับ Key ของมัน การเข้าถึงข้อมูลใน Dictionary นั้นรวดเร็วเพราะว่าข้อมูลได้ถูกทำ Index ไว้อัตโนมัติโดยใช้ Key
Dictionaries vs Lists
ลองดูตัวอย่างเปรียบเทียบ list กับ Dictionaries นะครับนึกภาพว่าเรามีภาพยนตร์สักเรื่องและคุณต้องการเก็บคะแนนไว้สำหรับพวกมัน นอกจากนี้เราต้องการเข้าถึงการจัดเรตติ้งของภาพยนตร์อย่างรวดเร็วด้วยชื่อภาพยนตร์ เราสามารถทำได้โดยใช้ 2 list หรือ 1 Dictionaries ในตัวอย่าง คำสั่งmovies.index(“Ex Machina”) จะส่งคะแนนสำหรับภาพยนตร์ “ Ex Machina”
การจัดอันดับภาพยนตร์โดยใช้ Dictionary จากตัวอย่างจะเห็นว่าในกรณีนี้การใช้ Dictionaries เป็นวิธีที่ง่ายและสะดวกยิ่งขึ้นในการแสดงการจัดอันดับการให้คะแนนภาพยนตร์
Dictionaries Operations
เราสามารถเพิ่มหรือปรับปรุงและลบข้อมูลจาก Dictionaries ของเราได้ เมื่อเราต้องการเพิ่มหรืออัพเดทข้อมูลเราก็สามารถใช้คำสั่ง our_dict[key] = value ได้ เมื่อเราต้องการลบข้อมูลค่าก็สามารถทำได้โดยใช้ del(our_dict[key]) ครับหรือสามารถดูตัวอย่างด้านล่างเพื่อเพิ่มความเข้าใจได้เลยครับ
นอกจากนี้เรายังสามารถใช้คำสั่ง key in our_dict ตรวจสอบว่าค่า Key ที่กำหนดอยู่ใน Dictionaries ของเราตัวอย่างอยู่ด้านล่างครับ
Functions
ฟังก์ชันคือการจัดกลุ่มของชุดคำสั่งที่ต้องใช้ในการทำงานร่วมกัน เพื่อให้โปรแกรมมีผลลัพท์ตามเป้าหมายที่กำหนดไว้ การสร้างเป็นฟังก์ชันนั้นจะช่วยในการจัดกลุ่มของชุดคำสั่งที่เราเขียนให้แยกเป็นกลุ่มๆ ตามเป้าหมายของการทำงาน ทำให้สะดวกในการเรียกใช้และยังช่วยให้สามารถแก้ไขหรือค้นหาได้สะดวกขึ้น เพราะเมื่อเราทำการเขียนโปรแกรมที่ซับซ้อนขึ้น จำนวนบรรทัดของคำสั่งก็มากขึ้นตาม ทำให้หากไม่ทำการจัดกลุ่มคำสั่งเป็นชุดๆ จะทำให้ลำบากในการทำการแก้ไขหรือเรียกใช้ในภายหลัง
การสร้างฟังก์ชันนั้นนอกจากจะช่วยแบ่งคำสั่งเป็นกลุ่มย่อยๆ แล้วยังทำให้เราสามารถเรียกใช้ชุดคำสั่งนั้นซ้ำๆ ได้โดยไม่ต้องเขียนคำสั่งชุดเดิมใหม่อีกด้วย
Method
เราจะเห็นว่า string, float, integer, boolean และอื่น ๆ ใน Python หนึ่งในโครงสร้างข้อมูลเหล่านี้เป็นตัวแปร วิธีการเป็นฟังก์ชั่นที่มีอยู่สำหรับตัวแปรที่กำหนดขึ้นอยู่กับประเภทของตัวแปร ดังนั้นแต่ละตัวแปรมีประเภทเฉพาะและชุดของวิธีการขึ้นอยู่กับประเภทแต่ละชนิดของข้อมูล
ตัวแปรของข้อมูลที่มีประเภทแตกต่างกันสามารถมีวิธีการที่ทำให้สามารถใช้ชื่อเดียวกันได้ ขึ้นอยู่กับชนิดของตัวแปรวิธีการต่าง ๆ ที่เราจะใช้งาน
Package
- Package , Module ของ Python คืออะไร ???
Package คือชุดของ Module ใน directory มี Package มากมายสำหรับ Python ที่ครอบคลุมปัญหาต่าง ๆ ตัวอย่างเช่น “NumPy”, “matplotlib”, “seaborn” และ “scikit-learning” เป็น Pakages ที่มีชื่อเสียงมากสำหรับสาย Data science ที่ต้องรู้จักครับ
- “ NumPy” ใช้สำหรับการทำงานกับข้อมูล Array
- “ matplotlib” และ“ seaborn” เป็นห้องสมุดยอดนิยมที่ใช้ในการสร้าง Data visualization
- “ scikit-learn” เป็น library ที่ใช้งานได้อย่างทีประสิทธิภาพในด้าน Machine learning
แต่ก็มีบาง Package ที่มีอยู่ใน Python อยู่แล้ว แต่ก็มีหลายแพ็คเกจที่เราต้องการและเราไม่มีมาในค่าเริ่มต้นของโปรแกรม python ถ้าเราต้องการใช้แพคเกจบางตัวเราต้องติดตั้งไว้หรือเพียงแค่ติดตั้งโดยใช้ pip (ระบบการติดตั้งแพ็กเกจสำหรับ Python)
แต่อย่างไรก็ตามทาง Stackpython อยากแนะนำโปรแกรมอีกตัวหนึ่งชื่อว่า “ Anaconda “
Anaconda
Anaconda Distribution เป็นโปรแกรมเขียนภาษา Python ที่ได้รับความนิยมเป็นอย่างมากในหมู่นักพัฒนาโปรแกรม รวมถึงผู้สนใจด้านวิทยาศาสตร์ข้อมูล (Data Science) เพราะติดตั้งได้ง่าย รวมถึงการติดตั้ง package ต่าง ๆ ที่สำคัญ โดยเฉพาะ IPython/Jupyter Notebook, Numpy, Scipy, Pandas, Matplotlib, scikit-learn และอื่น ๆ อีกมากมาย
ดังนั้นหากคุณไม่ต้องการติดตั้ง Package จำนวนมากให้วุ่นวาย ทาง Stackpython อยากแนะนำให้คุณใช้ “ Anaconda” มีซึ่ง Package ที่มีประโยชน์มากมายในโปรแกรมนี้
Import Statements
เมื่อคุณติดตั้ง Package ที่ต้องการแล้วคุณสามารถนำเข้าไฟล์เหล่านั้นลงในไฟล์ Python ของคุณได้ เราสามารถนำเข้าแพคเกจทั้งหมด submodules หรือฟังก์ชั่นเฉพาะจากมัน นอกจากนี้เราสามารถเพิ่มชื่อแทนสำหรับแพ็คเกจได้ โดยเราสามารถดูวิธีการนำเข้าคำสั่งต่าง ๆ ได้จากตัวอย่างด้านล่าง
จากภาพตัวอย่างด้านบนในการใช้งานคำสั่ง import นั้นจะเป็นการนำเข้าออบเจ็คทั้งหมดในโมดูลเข้ามายังโปรแกรม และการใช้งานฟังก์ชันหรือออบเจ็คภายในโมดูลจะต้องนำหน้าด้วยชื่อโมดูลเสมอ ในภาษา Python นั้นมีคำสั่ง from import สำหรับนำเข้าข้อมูลบางส่วนภายในโมดูล และสามารถใช้งานออบเจ็คได้โดยตรงโดยไม่ต้องมี Prefix ชื่อของโมดูล
ในตัวอย่างด้านบน เป็นการใช้งานคำสั่ง from … import เพื่อนำเข้าฟังก์ชันภายในโมดูลใน NumPy จะเห็นได้ว่าเราได้นำเข้าเพียงฟังก์ชัน array เข้ามาในโปรแกรมและในตอนใช้งานนั้นสามารถใช้ได้โดยที่ไม่ต้องใช้ Prefix ในการเรียกใช้
Numpy
ในที่สุดเราก็มาถึง Python Library ทางคณิตศาสตร์ที่สำคัญมากๆ และจำเป็นสุดๆ สำหรับ Data Science กันสักทีครับ Library นี้มีชื่อว่า Numpy ซึ่งสำคัญของการประยุกต์ใช้ Python ในงานคำนวณต่างๆ ทั้งด้านวิทยาศาสตร์ วิศวกรรมศาสตร์ สถิติ ฯลฯ
Numpy นั้นคล้ายกับ MATLAB ดังนั้นผู้ที่มีเคยใช้ MATLAB อยู่แล้วจะทำความเข้าใจ Numpy ได้ไม่ยากเท่าไหร่ โดยการนิยามตัวแปร array หลายมิติ ที่เราคุ้นเคยในคณิตศาสตร์ อาทิเช่น เวกเตอร์ (1 มิติ) เมตริกซ์ (2 มิติ) เทนเซอร์ ( 3 มิติขึ้นไป ในการทำความเข้าใจ Numpy นั้นผู้ที่สนใจ ควรมีความรู้พื้นฐาน Linear algebra พวก vector / matrix ในระดับหนึ่งครับ
หมายเหตุ แม้ในทางคณิตศาสตร์เวกเตอร์ควรจะแทนด้วย array 1 มิติ แต่ด้วย syntax ของ python นั้นการใช้ array 2มิติแทนเวกเตอร์จะเหมาะสมกว่า ดังที่อธิบายละเอียดในตัวอย่างข้างล่างครับ
ไม่เหมือนกับ list Python ปกติ array ของ NumPy มีประเภทเดียวเสมอ ถ้าเราทำให้ array ที่มีชนิดที่แตกต่างกันเพื่อที่เราสามารถเลือกประเภทที่ต้องการโดยใช้พารามิเตอร์ np.array() dtype หากไม่ได้รับพารามิเตอร์นี้จะมีการกำหนดประเภทเป็นประเภทขั้นต่ำที่ต้องใช้ในการเก็บข้อมูลตามตัวอย่างด้านล่างครับ
Operations ทางคณิตศาสตร์ของ Array
การบวก ลบ คูณ หาร “รายตัว” กรณี Array ทั้งสองมีขนาดเท่ากันการบวก ลบ คูณ หารในสมาชิกแต่ละตัวของ array สอง array นั่นคือบวก ลบ คูณ หารเฉพาะสมาชิกในตำแหน่งเดียวกัน สามารถทำได้อย่างตรงไปตรงมาในกรณีที่ array ทั้งสองมีขนาดเท่ากันสามารถดูได้จากตัวอย่างด้านล่างเพื่อเพิ่มความเข้าใจตามตัวอย่างด้านล่างได้เลยครับ
เราก็สามารถทำการลดขนาดใน Array โดยตามที่แสดงตัวอย่างให้คุณเห็นด้วย Array 2 มิติได้ตามตัวอย่างครับ
แต่ถ้าหากเราต้องการดูว่า Array ของเรามีขนาดเท่าใดและมีประกอบด้วยอะไรในแต่ละมิติเราสามารถใช้คำสั่ง shape เพื่อตรวจสอบได้ สำหรับอาร์เรย์ 2 มิติองค์หลักแรกของจะเป็นจำนวนแถวและหลักที่สองจำนวนคอลัมน์
Basic Statistics
ขั้นตอนแรกของการวิเคราะห์ข้อมูลคือทำความคุ้นเคยกับข้อมูล NumPy ซึ่งมีวิธีการมากมายที่ช่วยให้เราทำเช่นนั้นได้ เราจะเห็นวิธีการพื้นฐานเพื่อสร้างสถิติข้อมูลของเรา ตัวอย่างเช่น
- np.mean() — ส่งคืนค่าเฉลี่ยเลขคณิต (ผลรวมขององค์ประกอบหารด้วยความยาวขององค์ประกอบ)
- np.median() — ส่งคืนค่ามัธยฐาน (ค่ากลางของสำเนาที่เรียงลำดับของอาร์เรย์ที่ส่งผ่านถ้าความยาวของอาร์เรย์เท่ากับ — ค่าเฉลี่ยของค่ากลางสองค่าจะถูกคำนวณ)
- np.corrcoef()- ส่งคืนเมทริกซ์สหสัมพันธ์ ฟังก์ชั่นนี้มีประโยชน์เมื่อเราต้องการดูว่ามีความสัมพันธ์ระหว่างสองตัวแปรในชุดข้อมูลของเราหรือกับคำอื่น ๆ ระหว่างสองอาร์เรย์ที่มีความยาวเท่ากัน
- np.std() — ส่งคืนค่าเบี่ยงเบนมาตรฐาน
จากตัวอย่างข้างต้นเราจะเห็นว่ามีความสัมพันธ์อย่างมากระหว่างชั่วโมงการเรียนรู้และเกรดเฉลี่ย
นอกจากนี้เราจะเห็นว่า:
ค่าเฉลี่ยสำหรับชั่วโมงการเรียนรู้คือ 4.6
ค่ามัธยฐานของชั่วโมงการเรียนรู้คือ 4.0
ค่าเบี่ยงเบนมาตรฐานสำหรับชั่วโมงการเรียนรู้คือ 3.2
NumPy ยังมีฟังก์ชั่นพื้นฐานบางอย่าง เช่น np.sort() และ np.sum() ซึ่งมีอยู่ในรายการ Python พื้นฐานเช่นกัน เราจะเห็นว่า NumPy มีส่วนช่วยให้เราสามารถจัดการกับข้อมูลได้เร็วยิ่งขึ้นซึ่งช่วยในการคำนวณให้เร็วยิ่งขึ้น
ที่มา : https://towardsdatascience.com/python-basics-for-data-science-6a6c987f2755
บทส่งท้าย
ขอบคุณสำหรับการอ่านครับ ถ้าคุณชอบโพสต์นี้กรุณา กดปุ่ม 👏 และ Share ไปให้เพื่อนของคุณ นอกจากนี้เรายินดีที่จะรับฟังความคิดเห็นของคุณ หากคุณต้องการอ่านบทความจากเรา ช่วยกดติดตามหรืออัพเดทข่าวสารตามช่องทางด้านล่างได้เลยครับ
Instagram: stackpython
Facebook: stackpython
Website: stackpython.co
This article is written by: [Tide STACKPYTHON]