Corise — Python สำหรับวิทยาศาสตร์ข้อมูล
โครงการ 1 — Airbnb
ฉันเริ่มเขียนโค้ดใน Python สำหรับโปรเจ็กต์หนึ่งสัปดาห์สำหรับ Corise ฉันพบว่าภาษานี้มีความหลากหลายและง่ายต่อการเรียนรู้อย่างเหลือเชื่อในขณะที่ใช้ฟังก์ชันต่างๆ ของ Numpy ฉันพบว่าการใช้ Numpy ทำให้โค้ดของฉันคล่องตัวและสร้างผลิตภัณฑ์ขั้นสุดท้ายที่กระชับมากขึ้น ซึ่งทำให้ฉันใช้เวลากับอัลกอริทึมมากขึ้น เราใช้พื้นที่การทำงานร่วมกันโดย google สำหรับโครงการของเรา อย่างไรก็ตาม ฉันพบว่าบางครั้งการใช้คอมพิวเตอร์ในพื้นที่ที่ใช้ร่วมกันอาจทำให้เสียสมาธิได้ ฉันลงเอยด้วยการเปลี่ยนการตั้งค่าการแชร์หน้าจอทั้งหมดให้เป็นแบบส่วนตัว ซึ่งได้ผลดีสำหรับฉัน เนื่องจากฉันมุ่งเน้นที่การทำให้โค้ดถูกต้องมากกว่าสิ่งที่คนอื่นทำ ก่อนที่เราจะเริ่มโครงการ ฉันมีประสบการณ์ในการเขียนโปรแกรมน้อยมาก ดังนั้นฉันจึงกังวลมากเกี่ยวกับการสร้างโปรแกรมง่ายๆ ที่ใช้ Numpy
เริ่มต้นใช้งาน Python และ Numpy
ในการเริ่มต้นใช้งาน Numpy เราได้ดาวน์โหลดชุดข้อมูล Airbnb เพื่อทำความสะอาด ชุดข้อมูลประกอบด้วยข้อมูลเกี่ยวกับที่ตั้งของที่พักให้เช่าที่รวบรวมโดยผู้ใช้ Airbnb ในอัมสเตอร์ดัม เมื่อฉันดาวน์โหลดชุดข้อมูล ฉันไม่แปลกใจเลยที่เห็นว่ามันเป็นไฟล์ขนาดใหญ่ หลังจากอัปโหลดชุดข้อมูลแล้ว ก็ถึงเวลาทำความสะอาด เราต้องการกำจัดส่วนหัว ส่วนท้าย ID ที่ซ้ำกัน และขยะอื่นๆ ที่ทำให้ไฟล์อ่านยาก
- ลบคอลัมน์และแถวแรก
- พิมพ์สี่คอลัมน์แรก
- เลื่อนเมทริกซ์ไป 90 องศาโดยใช้เมทริกซ์ ' ทรานสโพส' ฟังก์ชัน
- พิมพ์ 5 แถวแรก
- ลบแถวและคอลัมน์ส่วนหัวออก และพิมพ์ 3 คอลัมน์สุดท้าย
จากนั้นเราได้เพิ่มคำสั่ง 'พิมพ์' เพื่อแสดงผลสำหรับแต่ละขั้นตอนข้างต้น
การแปลงสกุลเงินเป็น Numpy
ตอนนี้เราได้ล้างข้อมูลแล้ว เราต้องการใช้รหัส 'currency_converter' เพื่อแปลงเป็นสกุลเงินที่เราเลือก ก่อนอื่น ฉันนำเข้าห้องสมุดโดยใช้ ' from currency_converter import CurrencyConverter' หลังจากเสร็จสิ้น สกุลเงินที่ฉันตัดสินใจใช้คือ “GBP” และแปลงสกุลเงินจาก 'USD' เป็น 'GBP'
- รหัสที่ใช้มีดังต่อไปนี้:
- gbp_rate = cc.convert(1, 'USD', 'GBP')
- พิมพ์(gbp_rate) …… ตามด้วยคำแนะนำในการคูณคอลัมน์ดอลลาร์ด้วยสกุลเงินที่ใช้ (เช่น: GBP) เพื่อคำนวณอัตรา)
- พิมพ์(เมทริกซ์[:, 1]) …… ตามด้วยคำสั่งให้พิมพ์มูลค่าของดอลลาร์ในเมทริกซ์
- # คูณคอลัมน์ดอลลาร์ด้วยอัตราเงินเฟ้อ (1.00 + อัตราเงินเฟ้อ)
- เมทริกซ์[:, 1] = เมทริกซ์[:, 1] * 1.07
- พิมพ์(เมทริกซ์[:, 1]) …… ตามด้วยคำสั่งให้พิมพ์มูลค่าของดอลลาร์ในเมทริกซ์หลังจากคูณด้วยอัตราเงินเฟ้อแล้ว
ส่วนนี้ค่อนข้างง่ายและรวดเร็ว เราสร้างลูปเพื่อคำนวณระยะทางสำหรับละติจูดและลองจิจูดจากชุดข้อมูลที่ดาวน์โหลด ส่วนนี้ค่อนข้างง่ายและรวดเร็ว สำหรับส่วนนี้ของโครงการ เราได้สร้างฟังก์ชันที่สามารถวนซ้ำแต่ละองค์ประกอบในเวกเตอร์ลองจิจูดและละติจูดได้ ฟังก์ชันที่สร้างขึ้นมีชื่อว่า "ระยะทาง" และระบุสองอาร์กิวเมนต์: ละติจูดและลองจิจูด จากนั้นฉันใช้โค้ดบรรทัดนี้เพื่อวนซ้ำค่าในแต่ละคอลัมน์ในชุดข้อมูล
รหัสที่ใช้ในฟังก์ชัน timeit แสดงอยู่ด้านล่าง:
# อนุญาตให้ใช้ฟังก์ชัน Python ในลักษณะ (กึ่ง) vectorized>> conv_to_meters = np.vectorize(from_location_to_airbnb_listing_in_meters)
# ใช้ฟังก์ชั่นใช้เวลา >>>> conv_to_meters (ละติจูด, ลองจิจูด, เมทริกซ์ [:, 2], เมทริกซ์ [:, 3])
การสร้างแอปใน Streamlit และปรับใช้บน GitHub
เราใช้แพลตฟอร์ม Streamlit สร้างแอพสำหรับพอร์ตโฟลิโอของเราเพื่อแสดงรหัสด้านบนซึ่งเป็นตัวแทนของข้อมูล Airbnb ในการทำเช่นนั้น เราสามารถสร้างพื้นที่เก็บข้อมูลบน GitHub ที่เก็บข้อมูลดิบ แอปพลิเคชัน streamlit ที่ข้อมูลถูกแสดง และหน้าเว็บที่เก็บพอร์ตโฟลิโอโค้ดทั้งหมด จากที่นี่ ฉันสามารถทำให้แอปพลิเคชันเป็นแบบสาธารณะ เพื่อให้ผู้ใช้สามารถเยี่ยมชมสิ่งที่สร้างขึ้นได้ หากพวกเขาเลือกที่จะมีส่วนร่วม พวกเขาก็สามารถแยกโครงการไปยังบัญชี GitHub ของตนเองได้ จากนั้นจึงผลักดันการเปลี่ยนแปลงและการอัปเดตที่พวกเขาทำกับพื้นที่เก็บข้อมูลหรือทำการปรับเปลี่ยนใด ๆ ตามที่พวกเขาต้องการ ตราบใดที่พวกเขายังคงมีบัญชีเดิมที่เชื่อมโยงกับพื้นที่เก็บข้อมูลดั้งเดิม .
สรุป
โดยรวมแล้ว โปรเจกต์นี้สอนฉันเกี่ยวกับพื้นฐานของ Numpy ในขณะที่แสดงความเป็นไปได้ที่ไม่สิ้นสุดเมื่อพูดถึงการจัดการและวิเคราะห์ข้อมูลโดยใช้โปรแกรมนี้และซอฟต์แวร์วิเคราะห์ข้อมูลอื่นๆ เช่น R ฉันเชื่อว่าการรู้วิธีจัดการและดูข้อมูลตามที่เป็นอยู่นั้น สำคัญต่อความสำเร็จในสาขาวิทยาศาสตร์ ฉันยังเชื่อด้วยว่าความสามารถในการจัดการข้อมูลจากแหล่งข้อมูลที่หลากหลายนั้นทำให้เข้าใจมากขึ้นว่าโลกทำงานอย่างไร สัปดาห์นี้เราจะเริ่มต้นการเดินทางสู่หมีแพนด้า ซึ่งฉันก็ตื่นเต้นมากเช่นกัน ฉันคิดว่าเครื่องมือเหล่านี้จะช่วยให้เราสามารถจัดโครงสร้างข้อมูลของเราในลักษณะที่เราสามารถดึงข้อมูลที่เป็นประโยชน์ออกมาได้
อย่าลังเลที่จะติดตามฉันบนMedium , Twitter , LinkedInและGithub ฉันจะโพสต์เนื้อหาเพิ่มเติมระหว่างการเดินทางของข้อมูลที่นี่และในบัญชีโซเชียลอื่นๆ ของฉัน





































![รายการที่เชื่อมโยงคืออะไร? [ส่วนที่ 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)