Giới thiệu về Python 30d Challenge

Hello mọi người,

Mình nhận thấy hiện nay trên các kênh thông tin chia sẻ chỉ toàn tập trung chia sẻ bề nổi, những khái niệm liên quan tới Data Analyst mà chẳng ai chia sẻ thật sự những kỹ năng hay kỹ thuật cụ thể. Cũng đúng vì làm vậy sao mà bán khóa học được 😂

Vậy nên từ tuần nay mình start một cái challenge sẽ Livestream “Học Python cùng mọi người” dựa theo một cuốn sách nổi tiếng trong giới Data Analyst từ tác giả Wes McKinney.

Đây là link cuốn sách bản Open Edition: https://wesmckinney.com/book/

Dự định của mình hiện tại sẽ Live vào cuối tuần T7 và CN lý do là cuối tuần mình mới có nhiều thơi gian và cũng là để trong tuần mình chuẩn bị thật kỹ những tài liệu và tài nguyên liên quan để đỡ mất thời gian trong buổi Livestream.

Và mình cũng tổng hợp lại thành bài viết …

Chủ yếu vì mình nhận ra nếu chỉ quay và note ý chính thì nhiều bạn cũng khó theo dõi và nhất là có khi chuẩn bị vậy đó nhưng vô ghi hình mình lại … quên.

Vậy nên trước khi quay mình sẽ chuẩn bị sẵn một bài viết cho nội dung bữa đó, còn sau quay mình sẽ cập nhật thêm nếu trong lúc “Học cùng mình” mình phát hiện có gì đó hay và chưa đề cập cần bổ sung.

Thu hình lại buổi Livestream ngày 2:

🔥 Mục tiêu đặt ra

Học gì thì trước hết cũng phải biết mục tiêu, mỗi người sẽ có một mục tiêu khác nhau, ví dụ mình học cùng các bạn để vừa hệ thống lại kinh nghiệm vừa muốn chia sẻ tới mọi người để ai cũng biết “thao túng dữ liệu” kakaka.

Còn về cuốn sách này nếu ta theo đuổi tới cùng thì sẽ học được những thứ sau

🎯 Kết nối với vạn dữ liệu

Không phải bất cứ loại tệp tin hay kho lưu trữ nào cũng có cách kết nối giống nhau, từ các dạng file Excel, CSV hay Json cho tới các CSDL có cấu trúc và phi cấu trúc.

🎯 Preparation

Các hoạt động như (từ khúc này trở đi mình sẽ dùng tiếng Anh luôn cho nhanh nhé) cleaning, muging, combining, normalizing, reshaping, slicing and dicing.

🎯 Tranformation

Sử dụng các phép toán và thống kê để kết hợp nhiều tập dữ liệu khác nhau để tạo ra một tập dữ liệu mới. Điều này có thể được thực hiện vì nhiều mục đích khác nhau, chẳng hạn như:

  • Để xác định các mối quan hệ giữa các biến khác nhau trong nhiều tập dữ liệu khác nhau.
  • Để tạo ra một tập dữ liệu mới đại diện cho tổng thể của nhiều tập dữ liệu khác nhau.
  • Để tạo ra một tập dữ liệu mới có thể được sử dụng để huấn luyện các mô hình máy học.

🎯 Modeling và Computation

Xây dựng và sử dụng các mô hình toán học và tính toán ể dự đoán hành vi của các hệ thống, tối ưu hóa các quy trình và giải quyết các vấn đề. Ví dụ:

  • Một kỹ sư sử dụng mô hình toán học để mô tả cách thức hoạt động của một chiếc cầu.
  • Một nhà kinh tế sử dụng mô hình thống kê để dự đoán nhu cầu về hàng hóa.
  • Một bác sĩ sử dụng mô hình máy học để chẩn đoán bệnh ung thư.
  • Một nhà khoa học môi trường sử dụng mô hình để dự đoán tác động của biến đổi khí hậu.

🎯 Presentation

Bước này tuy dễ thực hiện nhưng lại khó để thực hiện xuất sắc vì đây là cách mà dân kỹ thuật nói chuyện với người dùng cuối. Không đơn gian như việc sử dụng công cụ mà bạn phải trang bị cho mình rất nhiều kỹ năng.

Cuốn sách mình có thể gọi ý các bạn đọc thêm là cuốn Data Storytelling đã có phiên bản tiếng Việt nhen

Sách dễ hiểu về Visualization

Bắt đầu hành trình

Mình tin là giữa nguyên văn tiếng Anh là hay nhất nhưng với nhưng mục tiêu đọc sách tiếng Anh cũng là để nâng cao tiếng Anh chuyên ngành nên mình sẽ note tiếng Việt đằng sau kí hiệu “vi” nhé ⭐

Terminology

🔥 Cuốn sách này nói về cái gì?

Trong chương này tập trung chủ yếu những niệm cần chú ý sau:

Các kỹ năng quan trọng của phân tích dữ liệu bao gồm:

  • Data manipulation = Data wrangling = Data muging
  • Data preparation = ETL = ELT
  • Data cleaning
  • Data curnching

🔥 Manipulate data – Nhào nặn dữ liệu

Manipulate dịch là “thao tác” nhưng cá nhân mình thấy dùng từ “nhào nặn” như trong “nhào nặn bột” sẽ dễ hình dung hơn.

Có 4 mục đích ta cần nhạo nặn

  1. Nhất quán lại dữ liệu: Thông thường thì dữ liệu ta mong muốn sẽ tới từ rất nhiều nguồn khác nhau (khác file, khác bảng, khác nơi lưu trữ, ..) Vậy nên việc tổ chức chúng lại sẽ giúp ta dễ đọc và nhìn rõ hơn các pattern (khuôn mẫu) ẩn giấu. ▶️ Việc này rõ ràng như bước nặn bột thành hình
  2. Ánh xạ lại dữ liệu: Chỉ khi có đầy đủ các dữ liệu quá khứ tới hiện tại thì ta mới có thể phân tích chuyên sâu và cả dự đoán được tương lai. ▶️ Các cục bột đã nặn chính là tài liệu để người nặn bột đút kết kinh nghiệm.
  3. Làm giàu bộ dữ liệu: Các lệnh DML trong SQL như Select, Insert, Update, Delete là những lệnh giúp làm giàu dữ liệu và thực tế bất cứ mô hình dự đoán nào sẽ là vô dụng khi xây dựng trên dữ liêu tĩnh ▶️ Nặn bột thì lúc thiếu bột điều cần nhất là phải đắp thêm chứ không phải ráng miết chỗ này bù chỗ khác.
  4. Lọc bỏ dữ liệu: Không phải dữ liệu nào cũng liên quan và không phải dữ liệu nào cũng mang lại giá trị. ▶️Dư bột thì phải cắt bỏ đúng chứ

🔥 Prepare data – Chuẩn bị dữ liệu

Đây là một khái niệm mô tả chi tiết hơn về quy trình xử lý dự liệu ban đầu. Có lẽ các bạn sẽ quen thuộc hơn với cụm từ ETL hoặc ELT.

E (Extract) = Collect + Validate + Cleanse + Fill

  • Thông thường bước này đòi hỏi nhiều công sức nhất vì phải tìm được nguồn đúng và đủ dữ liệu.
  • Điều tối quan trọng là cần phải đánh giá được những dữ liệu nào cần phải loại bỏ không chỉ vì nó không liên quan mà còn là bỏ đi những dự liệu nhạy cảm.
  • Trong trường hợp dữ liệu không đầy đủ thì ta phải dùng những kỹ thuật để giả lập (mean, median, linear regression, …) hoặc đánh dấu dữ liệu thiếu (blank , null, 0-value) – Một vài dữ liệu đặc thù vẫn bắt buộc phải để là Blank chứ không được để 0

T (Transform) = Structuring + Modeling / Normalize + Enrich

  • Đầu tiên là chuyển các dữ liệu phi cấu trúc thành có cấu trúc từ dữ liệu thô (raw data). Thường thì là dạng spreadsheet hay tabular
  • Sau đó là mô hình hóa lại dữ liệu theo chuẩn để dễ phân tích hơn

Lưu ý khác với Dữ liệu vận hành việc Modeling sẽ tuân theo các dạng chuẩn 1NF 2NF 3NF thì ở đây theo 2 dạng chuẩn chính là Star Schema và Fact Schema

  • Làm giàu dữ liệu ở đây là kết nối các dữ liệu và thông tin liên quan với nhau để cung cấp nhiều insight hơn. Nó khác với việc đào bới thêm dữ liệu ở bên trên vốn mình đã dùng từ Collect để thay thế

L (Load) = Strore

  • Đối tượng mà ta sẽ lưu dữ liệu chính là Data Warehouse hoặc Data Cube. Đây là những kiến trúc lưu trữ phục vụ cho việc phân tích tốt nhất.

🔥 Clean data – Làm sạch dữ liệu

Tương tự như Prepare data thì đây là một bước quan trọng vì nó đòi hỏi kinh nghiệm và kiến thức Domain Business mới có thể làm được.

Nếu dữ liệu không chính xác, các thuật toán và kết quả cho ra không đáng tin cậy (dù cho nó có vẻ đúng). Đây được gọi là “Thiên kiến dữ liệu”

Ưu điểm dễ nhận ra nhất là nó làm nhẹ đi mô hình phân tích, nhưng mục tiêu quan trong nhất là tránh những thiên kiến sai lệch do độ chính xác của dữ liệu không cao dẫn tới các mô hình phân tích không phản ánh/dự đoán đúng.

Một số kỹ thuật cơ bản đã nhắc qua ở bước Extract trên thì còn có:

  • Sửa lỗi cú pháp và chính tả,
  • Sửa đổi các lỗi thiếu mã, trường trống,
  • Xác định các điểm dữ liệu trùng lặp.

Clean Data cũng được dùng thay thế cho bước Extract 😂 Nói chung dữ liệu sau khi làm sạch cần phải

🔥 Crunching data – Nghiền nhỏ dữ liệu

Từ này chỉ việc phân nhỏ dữ liệu thành các phân cụm hoặc nhóm có chủ đích để mang lại nhiều giá trị trong việc ra quyết định hơn. Ví dụ:

Website của một công ty ghi nhận có 10 000 lượt truy cập mỗi ngày. Thoạt nghe thì khá là ấn tượng nhưng con số này vô dụng vì nó không giúp công ty đưa ra bất kỳ chiến lượt hay quyết định cụ thể nào.

Giờ thay vào đó tao phân con số bự chảng này thành những nhóm insightful hơn

  • Nhóm những người tìm kiếm sản phẩm của công ty
  • Nhóm những người tìm việc
  • Nhóm lướt dạo
  • Nhóm tìm kiếm liên lạc hợp tác kinh doanh.
  • v…v…

Rõ ràng những con số trong các nhóm trên mang nhiều ý nghĩa hơn nhiều vì công ty có thể ra những quyết định như:

  • Nếu công ty bán được hàng qua website tốt, họ cần phải tăng cường quảng bá các thế mạnh của sản phẩm và thiết kế trang thanh toán dễ dàng hơn.
  • Nếu các đối tác kinh doanh chủ yếu tìm kiếm qua kênh website thì họ cần cải thiện thêm các kênh truyền thông khác và tăng cường thông tin các chính sách ưu đãi trực tiếp trên website.
  • Còn nếu website quá ít người truy cập tìm việc trên trang công ty thì họ có thể đẩy mạnh các kênh tuyển dụng khác.

🔥 Loại dữ liệu chúng ta sẽ làm việc?

Data có hai loại là Có cấu trúc và Phi cấu trúc. Ở phạm vi bootcamp này thì mình chỉ đề cập tới loại có cấu trúc như tác giả.

Dữ liệu có cấu trúc là dữ liệu có định dạng chuẩn hóa, thường ở dạng bảng, bao gồm các hàng và cột xác định rõ ràng các thuộc tính dữ liệu. Một số đặc điểm sau mà bạn cần nhớ:

Tính định danh

Các bản ghi/giá trị của cùng một bảng dữ liệu luôn có cùng các thuộc tính (cột) giống nhau. Ví dụ: Trong bảng học sinh thì các giá trị (dòng dữ liệu) của nó đều có chung các thuộc tính (cột dữ liệu) như tên học sinh, mã số học sinh, ngày sinh, …

Tính định lượng

Dữ liệu có cấu trúc phù hợp với việc phân tích toán học. Ví dụ: bạn có thể đếm và đo tần suất của các thuộc tính cũng như thực hiện các phép toán trên dữ liệu số.

Các thuộc tính quan hệ

Các tập dữ liệu khác nhau “liên quan” với nhau cùng một hệ thống hoặc cùng một quần thể xác định luôn có các giá trị chung liên kết chúng lại với nhau. Ví dụ: Ta có thể lien kết dữ liệu học sinh và lớp học lại với nhau bằng id học sinh và id lớp học.

Khả năng lưu trữ

Bạn có thể lưu trữ dữ liệu có cấu trúc trong cơ sở dữ liệu quan hệ và quản lý nó bằng ngôn ngữ truy vấn có cấu trúc (SQL). SQL cho phép bạn xác định một mô hình dữ liệu được gọi là lược đồ, trong đó bạn xác định các quy tắc đặt trước — chẳng hạn như trường, định dạng và giá trị — cho dữ liệu của mình. Sau đó, bạn có thể lưu trữ dữ liệu có cấu trúc trong kho dữ liệu hoặc công nghệ cơ sở dữ liệu quan hệ khác.

Ví dụ về dữ liệu có cấu trúc

  • Tệp Excel
  • Cơ sở dữ liệu SQL
  • Dữ liệu bán hàng
  • Kết quả biểu mẫu web
  • Thẻ tối ưu hóa công cụ tìm kiếm (SEO)
  • Danh mục sản phẩm
  • Kiểm soát hàng tồn kho
  • Hệ thống đặt chỗ

Tại sao dùng Python để Phân tích dữ liệu

Theo tác giả thì có những đặc điểm sau đây mà bất kỳ ai “nghiêm túc chơi” với dữ liệu nên dùng. 🤔 Cá nhân mình thì thấy có vài lý do hơi cao siêu quá nhưng lướt qua trước thử xem sao nhé

🔥 Sự phát triển thần tốc

Tron vòng 20 năm, Python từ khi chỉ là một Ngôn ngữ kịch bản (scripting language) “tự chịu rủi ro” khi sử dụng, đã có thể sử dụng để xây dựng những dự án tầm cỡ mà ai cũng biết, có thể kể đến như:

  • Spotify: Spotify là một nền tảng phát trực tuyến âm nhạc được sử dụng bởi hàng triệu người dùng trên toàn thế giới. Spotify được phát triển bằng Python và Django, một framework web Python.
  • Instagram: Instagram là một nền tảng chia sẻ hình ảnh và video phổ biến. Instagram được phát triển bằng Python và Django.
  • Reddit: Reddit là một trang web cộng đồng trực tuyến nơi người dùng có thể chia sẻ tin tức, ý tưởng và thảo luận về các chủ đề khác nhau. Reddit được phát triển bằng Python và Django.
  • Discord: Discord là một nền tảng trò chuyện và cộng đồng trực tuyến được sử dụng bởi các game thủ và các cộng đồng trực tuyến khác. Discord được phát triển bằng Python và Electron, một framework HTML, CSS và JavaScript.
  • OpenStack: OpenStack là một nền tảng phần mềm mã nguồn mở cho điện toán đám mây. OpenStack được phát triển bằng Python, C++ và Java.

Scripting language là một loại ngôn ngữ lập trình được sử dụng để tự động hóa các tác vụ trong một môi trường thời gian chạy đặc biệt

Còn đối với các ngành như Data Science, Data Analyst hay lĩnh vực Machine Learning nhờ những đóng góp to lớn từ những thư viện mở tên tuổi như pandas, scikit-learn, … đã làm bệ phóng vững chắc và nhảy vọt phát triển nhanh chóng so với cách đây hơn 10 năm về trước (khoảng những năm 2011 và 2012).

So sánh Python vs R, MATLAB, Stata

Với việc vừa có cả sức mạnh về xây dựng phần mềm lại vừa sở hữu những bộ thư viện mạnh mẽ thì dùng Python để xây dựng những ứng dụng dữ liệu (data applications) hay data-driven application luôn là sự ưu tiên.

🔥 Python as Glue

Python được gọi là “glue language” (ngôn ngữ kết dính) vì nó có thể được sử dụng để kết nối và tích hợp các ngôn ngữ lập trình bậc thấp như C, C++, FORTRAN, các công nghệ và hệ thống khác nhau.

Kỳ thực thì bản thân mình cũng chưa từng tích hợp các ngôn ngữ bậc thấp như C, C++ hay FORTRAN vào mà nguồn Python để thực hiện các chương trìn/phép tính đòi hỏi thời gian thực thi cao tới vậy. Cơ mà trên thực tế thì mình tin không ít phòng thí nghiệm hoặc các chương trình tầm cỡ NASA chắc chắn sẽ rất cần điều này.

Ý trên thì khá cao siêu rồi, còn theo nhận định của mình lập trình Python nó sướng ở chỗ

🔥 Dễ học và sử dụng

Python có cú pháp rõ ràng và dễ đọc, khiến nó trở thành một ngôn ngữ dễ học cho cả người mới bắt đầu và lập trình viên có kinh nghiệm.

🔥 Tốc độ và hiệu suất

Python là một ngôn ngữ nhanh và hiệu quả, khiến nó trở nên lý tưởng cho các tác vụ phân tích dữ liệu đòi hỏi nhiều tài nguyên. Cứ thử xử lý dữ liệu trên file Excel vài triệu dòng là bạn sẽ biết liền.

🔥 Dễ thu thập và xử lý dữ liệu

Python có thể được sử dụng để thu thập dữ liệu từ nhiều nguồn khác nhau, bao gồm cơ sở dữ liệu, tệp và trang web (crawl data). Python cũng có thể được sử dụng để xử lý dữ liệu, chẳng hạn như làm sạch, chuẩn hóa và chuyển đổi dữ liệu.

🔥 Khai phá và phân tích dữ liệu

Qúa rõ ràng là cùng với sự đa dạng và mạnh mẽ của các thư viện mở mà dân DA luôn chuộng dùng Python

🔥 Trực quan hóa dữ liệu

Dù không quá mạnh mẽ như Power BI vốn là một công cụ thuần Visualization nhưng cái mạnh ở đây là nó dễ dàng dùng trực tiếp ngay trên môi trường đang cho ra các kết quả phân tích và dự đoán mà không lằng nhằng cài đặt như các ngôn ngữ lập trình khác.

Các thư viện dùng cho dân DA

🔥 Numpy

Viết tắt của Numerical Python, đây là thư viện giúp biến đổi dữ liệu lại thành dạng có cấu trúc gọi là mảng da chiều (ndarray – multidimenional array – Mảng NumPy). Ngoài ra thì còn cung cấp thêm một số thuật toán xây dựng sẵn, các hàm đọc ghi và thao tác với dữ liệu trong mảng ndarray.

Trong Python mặc định có các cấu trúc dữ liệu sẵn có như List, Tuple, Sets, Dictionaries – Mình sẽ nói trong buổi Live sau và bài viết sau.

Nhưng đối với dữ liệu số, ndarray Numpy hiệu quả hơn trong việc lưu trữ và thao tác hơn, ví như việc nó sẽ đóng gói dữ liệu và truyền qua lại giữa các thuật toán và thư viện khác nhau.

Mảng NumPy được công nhận là cấu trúc dữ liệu chính đối với rất nhiều công cụ tính toán dùng Python.

🔥 pandas

Hồi đầu mình còn đọc thành panda là con gấu trúc á. 😂 Mà mách bạn biết nè tên nó được biến hóa từ cụm từ panel data – một thuật ngữ kinh tế lượng cho các tập dữ liệu có cấu trúc đa chiều. Tác giả cũng bổ sung thêm là nó là cách chơi chữ từ cụm từ python data analysis

Từ giờ hết lộn sang panda ha

Sự ra đời của nó là việc kế thừa tinh hoa từ cấu trúc mảng NumPy và nhu cầu xử lý thao tác dữ liệu như trong các bảng của CSDL quan hệ (SQL). Kết hợp 2 thứ này ta ra DataFrame. Nói cho vui thì

DataFrame = NumPy + SQL capabilities

Fun Fact 1:

Một cái tên dài hơn cho DataFrame là one-dimensional labled array object

Vậy nên bản chất DataFrame là một kiểu cấu trúc dữ liệu bậc cao (người dùng nhìn quen mắt hơn và dễ thao tác) đồng thời thừa hưởng những khả năng như “nhào nặn” dữ liệu, reshape, slide, dice, aggregation, select subsets data (dịch mấy từ này chuối quá 😥)

Do được xây dựng ban đầu để giải quyết các vấn đề phân tích tài chính và kinh doanh nên Pandas được thiết kế đặc biệt để làm việc với dữ liệu được lập chỉ mục theo thời gian, chẳng hạn như dữ liệu giá cổ phiếu hoặc dữ liệu doanh số bán hàng.

Không giống như Python, Data Frame được tích hợp sẵn trong ngôn ngữ lập trình R và thư viện chuẩn của nó.

🔥 matplotlib

matplotlib là thư viện phổ biến nhất mà mình thấy khi muốn vẽ biểu đồ trực tiếp trên môi trường Python.

Fun fact

Thư viện matplotlib được tạo ra bởi John D. Hunter vào năm 2003 vốn là một nhà thần kinh học và nhà khoa học máy tính tại Đại học California, Berkeley. Ông muốn có một thư viện Python để tạo các biểu đồ chất lượng cao, tương tự như các biểu đồ có thể được tạo bằng MATLAB.

Hồi mới ra mắt thì bộ thư viện này có nhiều hạn chế như không thể tạo các biểu đồ tương tác và không hỗ trợ nhiều loại biểu đồ. Nhưng từ lúc ra mắt tới nay dưới sự giúp đỡ của nhiều nhà phát triển từ khắp nơi trên thế giới thì mình thấy có rất nhiều loại biểu đồ mà cả Power BI cũng khó linh hoạt tạo được và thậm chí là không có sẵn. Có thể kể tên các nhóm biểu đồ tương ứng với các loại như:

Pairwise data – Biểu đồ dữ liệu 2 biến

Còn gọi là biểu đồ dữ liệu theo cặp, là một loại biểu đồ được sử dụng để hiển thị mối quan hệ giữa các cặp biến trong một tập dữ liệu. Biểu đồ dữ liệu theo cặp có thể được sử dụng để xác định các mối tương quan giữa các biến, cũng như để tìm hiểu cách các biến tương tác với nhau.

Có nhiều loại biểu đồ dữ liệu theo cặp khác nhau, cơ mà phổ biến nhất cho dân DA chắc mấy loại sau:

  • Biểu đồ phân tán (scatter plot): Biểu đồ phân tán được sử dụng để hiển thị mối quan hệ giữa hai biến không liên tục. Mỗi điểm dữ liệu trong biểu đồ phân tán đại diện cho một quan sát, và vị trí của điểm dữ liệu trên trục x và trục y tương ứng với các giá trị của hai biến.
  • Biểu đồ đường hồi quy (regression plot): Biểu đồ đường hồi quy được sử dụng để hiển thị mối quan hệ giữa hai biến có liên quan tuyến tính. Biểu đồ đường hồi quy hiển thị một đường thẳng hoặc đường cong được ước tính phù hợp nhất với các điểm dữ liệu.
  • Các biểu đồ tương quan (correlation plot): Biểu đồ tương quan được sử dụng để hiển thị mối tương quan giữa tất cả các cặp biến trong một tập dữ liệu. Biểu đồ tương quan thường được hiển thị dưới dạng ma trận, với mỗi ô trong ma trận hiển thị mối tương quan giữa

Ví dụ đơn giản sau

# Tạo dữ liệu
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# Tạo biểu đồ phân tán
plt.scatter(x, y)

# Hiển thị biểu đồ
plt.show()

Statistical distributions – Biểu đồ phân phối thống kê

Là một loại biểu đồ được sử dụng để hiển thị sự phân bố của dữ liệu. Biểu đồ phân bố thống kê có thể giúp bạn hiểu rõ hơn dữ liệu của mình và xác định các xu hướng hoặc mô hình trong dữ liệu.

Có nhiều loại biểu đồ phân bố thống kê khác nhau, ví dụ một số loại phổ biến:

  • Biểu đồ phân bố (histogram): Biểu đồ phân bố được sử dụng để hiển thị sự phân bố của dữ liệu liên tục. Biểu đồ phân bố hiển thị số lượng điểm dữ liệu trong các khoảng giá trị khác nhau.
  • Biểu đồ mật độ (density plot): Biểu đồ mật độ được sử dụng để hiển thị sự phân bố của dữ liệu liên tục hoặc không liên tục. Biểu đồ mật độ hiển thị một đường cong hoặc bề mặt mịn thể hiện xác suất của việc tìm thấy một điểm dữ liệu tại một giá trị cụ thể.
  • Biểu đồ hộp (box plot): Biểu đồ hộp được sử dụng để tóm tắt sự phân bố của dữ liệu liên tục. Biểu đồ hộp hiển thị trung vị, tứ phân vị thứ nhất và thứ ba, cũng như các điểm dữ liệu nằm ngoài phạm vi.
import matplotlib.pyplot as plt
import numpy as np

# Tạo dữ liệu
x = np.random.randn(1000)

# Tạo biểu đồ phân bố
plt.hist(x)

# Hiển thị biểu đồ
plt.show()

Gridded data – Biểu đồ dạng lưới

là một loại biểu đồ được sử dụng để hiển thị dữ liệu được tổ chức thành một lưới. Dữ liệu lưới thường được thu thập từ các cảm biến hoặc mô phỏng, và nó có thể được sử dụng để hiển thị các trường dữ liệu như nhiệt độ, độ cao, hoặc tốc độ gió.

Mình cũng chưa thật sự sử dụng dạng biểu đồ này nhiều nên sẽ không nói sâu, dưới đây là một số loại mà matplotlib hỗ trợ

import matplotlib.pyplot as plt
import numpy as np

# Tạo dữ liệu lưới
x = np.linspace(0, 10, 100)
y = np.linspace(0, 10, 100)
z = np.sin(x) * np.sin(y)

# Tạo biểu đồ màu
plt.contour(x, y, z)

# Hiển thị biểu đồ
plt.show()

Irregularly gridded data – Biểu đồ dạng lưới không đều

Tương tụ như trên =)))

import matplotlib.pyplot as plt
import numpy as np

# Tạo dữ liệu lưới không đều
x = np.random.randn(1000)
y = np.random.randn(1000)

# Tạo biểu đồ phân tán
plt.scatter(x, y)

# Hiển thị biểu đồ
plt.show()

3D and volumetric data – Biểu đồ 3D

Đây chính là thế mạnh của thư viện này so với các công cụ phổ biến trên thị trường như Power BI hay Tabular

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('_mpl-gallery')

# Make data
np.random.seed(19680801)
n = 100
rng = np.random.default_rng()
xs = rng.uniform(23, 32, n)
ys = rng.uniform(0, 100, n)
zs = rng.uniform(-50, -25, n)

# Plot
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})
ax.scatter(xs, ys, zs)

ax.set(xticklabels=[],
       yticklabels=[],
       zticklabels=[])

plt.show()

Lời kết

Phải nói mình rất hào hứng với hành trình sắp tới của chúng ta, bạn thì sao? Cho mình biết cảm nhận của bạn với nhé ♥

Mình tin với sự nổ lực và kiên trì của chúng ta thì chúng ta sẽ đạt được mục tiêu chúng ta đã đề ra

Hẹn gặp các bạn và buổi Livestream kế tiếp nhé (8:00 PM – T3 và CN hằng tuần)

Các kênh cộng đồng của mình

Facebook: https://www.facebook.com/bocuoilamdata

Youtube: https://www.youtube.com/@CarrY4U_VN

Website: https://carry4u.org/

© Bản quyền thuộc về CarrY4U và Bò Cười Làm Data
© Copyright by CarrY4U and bocuoilamdata ☞ Do not Reup”