Phân loại cấu trúc dữ liệu trong python

là hai trong số những khái niệm cơ bản nhất trong khoa học máy tính. Chúng là những công cụ không thể thiếu đối với bất kỳ lập trình viên nào. Cấu trúc dữ liệu trong Python xử lý việc tổ chức và lưu trữ dữ liệu trong bộ nhớ trong khi chương trình đang xử lý nó. Mặt khác, Thuật toán Pythontham khảo bộ hướng dẫn chi tiết giúp xử lý dữ liệu cho một mục đích cụ thể

Hoặc, có thể nói rằng các cấu trúc dữ liệu khác nhau được thuật toán sử dụng một cách hợp lý để giải quyết một vấn đề phân tích dữ liệu cụ thể. Cho dù đó là một vấn đề trong thế giới thực hay một câu hỏi điển hình liên quan đến mã hóa, thì việc hiểu biết về cấu trúc dữ liệu và thuật toán trong Python là rất quan trọng nếu bạn muốn phát triển . Trong bài viết này, bạn sẽ tìm thấy nội dung thảo luận chi tiết về các thuật toán Python và cấu trúc dữ liệu khác nhau. Nếu bạn muốn tìm hiểu thêm về Python, hãy xem các khóa học về khoa học dữ liệu của chúng tôi.

Tìm hiểu thêm. Sáu cấu trúc dữ liệu được sử dụng phổ biến nhất trong R

Mục lục

Cấu trúc dữ liệu trong Python là gì?

Cấu trúc dữ liệu là một cách tổ chức và lưu trữ dữ liệu; . Có nhiều cách phân loại cấu trúc dữ liệu. Một cách là phân loại chúng thành các kiểu dữ liệu nguyên thủy và không nguyên thủy

Trong khi các kiểu dữ liệu nguyên thủy bao gồm Số nguyên, Float, Chuỗi và Boolean, thì các kiểu dữ liệu không nguyên thủy là Mảng, Danh sách, Bộ dữ liệu, Từ điển, Bộ và Tệp. Một số loại dữ liệu không nguyên thủy này, chẳng hạn như Danh sách, Bộ dữ liệu, Từ điển và Bộ, được tích hợp sẵn trong Python. Có một loại cấu trúc dữ liệu khác trong Python do người dùng định nghĩa; . Chúng bao gồm Ngăn xếp, Hàng đợi, Danh sách được liên kết, Cây, Đồ thị và HashMap

Học viên của chúng tôi cũng đọc. Cấu trúc dữ liệu và thuật toán miễn phí

Cấu trúc dữ liệu nguyên thủy

Đây là những cấu trúc dữ liệu cơ bản trong Python chứa các giá trị dữ liệu thuần túy và đơn giản, đồng thời đóng vai trò là các khối xây dựng để thao tác dữ liệu. Hãy để chúng tôi nói về bốn loại biến nguyên thủy trong Python

  • Số nguyên – Loại dữ liệu này được sử dụng để biểu thị dữ liệu số, nghĩa là các số nguyên dương hoặc âm không có dấu thập phân. Nói, -1, 3 hoặc 6
  • Float - Float biểu thị 'số thực dấu phẩy động. ' Nó được sử dụng để biểu diễn các số hữu tỷ, thường chứa dấu thập phân như 2. 0 hoặc 5. 77. Vì Python là ngôn ngữ lập trình được nhập động, nên kiểu dữ liệu mà một đối tượng lưu trữ có thể thay đổi được và không cần phải nêu rõ loại biến của bạn
  • Chuỗi – Kiểu dữ liệu này biểu thị một tập hợp các bảng chữ cái, từ hoặc ký tự chữ và số. Nó được tạo bằng cách bao gồm một chuỗi ký tự trong một cặp dấu ngoặc kép hoặc dấu nháy đơn. Để nối hai hoặc nhiều Chuỗi, thao tác '+' có thể được áp dụng cho chúng. Lặp lại, nối, viết hoa và truy xuất là một số thao tác Chuỗi khác trong Python. Thí dụ. 'xanh dương', 'đỏ', v.v.
  • Boolean – Loại dữ liệu này hữu ích trong các biểu thức so sánh và điều kiện và có thể nhận các giá trị TRUE hoặc FALSE.  

Biêt nhiêu hơn. Khung dữ liệu trong Python

Cấu trúc dữ liệu không nguyên thủy được xây dựng sẵn

Trái ngược với cấu trúc dữ liệu nguyên thủy, các kiểu dữ liệu không nguyên thủy không chỉ lưu trữ các giá trị mà còn là một tập hợp các giá trị ở các định dạng khác nhau. Chúng ta hãy xem các cấu trúc dữ liệu không nguyên thủy trong Python

    • Danh sách – Đây là cấu trúc dữ liệu linh hoạt nhất trong Python và được viết dưới dạng danh sách các phần tử được phân tách bằng dấu phẩy được đặt trong dấu ngoặc vuông. Một Danh sách có thể bao gồm cả các phần tử không đồng nhất và đồng nhất. Một số phương thức có thể áp dụng trên Danh sách là chỉ mục[], nối thêm[], mở rộng[], chèn[], xóa[], pop[], v.v. Danh sách có thể thay đổi;

Hội thảo trên web về Khoa học Dữ liệu Độc quyền của upGrad dành cho bạn –

Cách xây dựng tư duy kỹ thuật số và dữ liệu

https. //cdn. nâng cấp. com/blog/webinar-on-building-digital-and-data-mindset. mp4

Nguồn

  • Bộ dữ liệu – Bộ dữ liệu tương tự như Danh sách nhưng không thay đổi. Ngoài ra, không giống như Danh sách, Bộ dữ liệu được khai báo trong dấu ngoặc đơn thay vì dấu ngoặc vuông. Tính năng bất biến biểu thị rằng một khi phần tử đã được xác định trong Tuple, nó không thể bị xóa, gán lại hoặc chỉnh sửa. Nó đảm bảo rằng các giá trị được khai báo của cấu trúc dữ liệu không bị thao túng hoặc ghi đè

Nguồn

Học viên của chúng tôi cũng đọc. Khóa học Python miễn phí

Khám phá các khóa học Khoa học dữ liệu phổ biến của chúng tôi

Chương trình sau đại học cấp cao về Khoa học dữ liệu từ IIITBChương trình chứng chỉ chuyên nghiệp về Khoa học dữ liệu để ra quyết định kinh doanhThạc sĩ khoa học về Khoa học dữ liệu từ Đại học ArizonaChương trình chứng chỉ nâng cao về Khoa học dữ liệu từ IIITBChương trình chứng chỉ chuyên nghiệp về Khoa học dữ liệu và phân tích kinh doanh từ Đại học MarylandCác khóa học về khoa học dữ liệu

  • Từ điển – Từ điển bao gồm các cặp khóa-giá trị. 'Khóa' xác định một mục và 'giá trị' lưu trữ giá trị của mục đó. Dấu hai chấm ngăn cách khóa với giá trị của nó. Các mục được phân tách bằng dấu phẩy, với toàn bộ nội dung nằm trong dấu ngoặc nhọn. Trong khi các khóa là bất biến [số, Chuỗi hoặc Bộ dữ liệu], các giá trị có thể thuộc bất kỳ loại nào

Nguồn

  • Bộ - Bộ là một tập hợp các phần tử duy nhất không có thứ tự. Giống như Danh sách, Bộ có thể thay đổi và được viết trong dấu ngoặc vuông, nhưng không có hai giá trị nào giống nhau. Một số phương thức Đặt bao gồm đếm[], chỉ mục[], bất kỳ[], tất cả[], v.v.

Phải đọc . Khóa học Excel trực tuyến miễn phí.

Nguồn

  • Danh sách so với. Mảng – Không có khái niệm về Mảng trong Python. Mảng có thể được nhập bằng gói NumPy trước khi khởi tạo chúng. Để biết thêm về NumPy, người ta có thể xem hướng dẫn về python NumPy của chúng tôi. Danh sách và Mảng hầu như giống nhau ngoại trừ một điểm khác biệt – trong khi Mảng là tập hợp chỉ các phần tử đồng nhất, thì Danh sách bao gồm cả các phần tử đồng nhất và không đồng nhất.

Thủ tục thanh toán. Các loại cây nhị phân

Cấu trúc dữ liệu do người dùng định nghĩa trong Python

Phần tiếp theo trong cuộc thảo luận của chúng ta về cấu trúc dữ liệu và thuật toán trong Python là tổng quan ngắn gọn về các cấu trúc dữ liệu khác nhau do người dùng xác định.

  • Ngăn xếp – Ngăn xếp là cấu trúc dữ liệu tuyến tính trong Python. Lưu trữ các mục trong Ngăn xếp dựa trên nguyên tắc Nhập trước/Xuất cuối [FILO] hoặc Nhập sau/Xuất trước [LIFO]. Trong Stacks, việc thêm một phần tử mới vào một đầu đi kèm với việc loại bỏ một phần tử từ cùng một đầu. Các thao tác 'đẩy' và 'bật' lần lượt được sử dụng để chèn và xóa. Các hàm khác liên quan đến Stack là empty[], size[] và top[]. Ngăn xếp có thể được triển khai bằng cách sử dụng các mô-đun và cấu trúc dữ liệu từ thư viện Python – danh sách, bộ sưu tập. deque, và hàng đợi. LifeQueue.  
  • Hàng đợi – Tương tự như Ngăn xếp, Hàng đợi là cấu trúc dữ liệu tuyến tính. Tuy nhiên, các mặt hàng được lưu trữ dựa trên nguyên tắc Nhập trước/ Xuất trước [FIFO]. Trong Hàng đợi, mục được thêm vào gần đây nhất sẽ bị xóa trước. Các thao tác liên quan đến Queue bao gồm Enqueue [thêm phần tử], Dequeue [xóa phần tử], Front và Rear. Giống như Ngăn xếp, Hàng đợi có thể được triển khai bằng cách sử dụng các mô-đun và cấu trúc dữ liệu từ thư viện Python – danh sách, bộ sưu tập. deque, và hàng đợi
  • Cây – Cây là cấu trúc dữ liệu phi tuyến tính trong Python và bao gồm các nút được kết nối bởi các cạnh. Các thuộc tính của Cây là một nút được chỉ định là nút gốc, ngoài nút gốc, mọi nút khác có một nút cha được liên kết và mỗi nút có thể có số lượng nút con tùy ý. Cấu trúc dữ liệu Cây nhị phân là cấu trúc có các phần tử có không quá hai phần tử con
  • Danh sách liên kết – Một loạt các phần tử dữ liệu được kết hợp với nhau thông qua các liên kết được gọi là Danh sách liên kết trong Python. Nó cũng là một cấu trúc dữ liệu tuyến tính. Mỗi thành phần dữ liệu trong Danh sách liên kết được kết nối với nhau bằng con trỏ. Vì thư viện Python không chứa Danh sách liên kết, nên chúng được triển khai bằng khái niệm nút. Danh sách liên kết có lợi thế hơn Mảng ở chỗ có kích thước động, dễ dàng thêm/xóa phần tử
  • Biểu đồ – Biểu đồ trong Python biểu thị bằng hình ảnh một tập hợp các đối tượng, với một số cặp đối tượng được kết nối bằng các liên kết. Các đỉnh đại diện cho các đối tượng được kết nối với nhau và các liên kết nối các đỉnh được gọi là các cạnh. Kiểu dữ liệu từ điển Python có thể được sử dụng để trình bày biểu đồ. Về bản chất, 'khóa' của từ điển đại diện cho các đỉnh và 'giá trị' biểu thị các kết nối hoặc các cạnh giữa các đỉnh.  
  • HashMaps/Hash Tables – Trong kiểu cấu trúc dữ liệu này, hàm Hash tạo địa chỉ hoặc giá trị chỉ mục của phần tử dữ liệu. Giá trị chỉ mục đóng vai trò là chìa khóa cho giá trị dữ liệu cho phép truy cập dữ liệu nhanh hơn. Như trong kiểu dữ liệu từ điển, Bảng băm có các cặp khóa-giá trị, nhưng hàm băm tạo ra khóa.  

Đọc các bài báo phổ biến về Khoa học dữ liệu của chúng tôi

Con đường sự nghiệp Khoa học dữ liệu. Hướng dẫn nghề nghiệp toàn diện Khoa học dữ liệu Tăng trưởng nghề nghiệp. Tương lai của công việc là đâyTại sao Khoa học dữ liệu lại quan trọng? . Họ làm gì? Myth Busted. Khoa học dữ liệu không cần Mã hóa Business Intelligence vs Khoa học dữ liệu. Sự khác biệt là gì?

Các thuật toán trong Python là gì?

Thuật toán Python là một tập hợp các hướng dẫn được thực thi để tìm giải pháp cho một vấn đề nhất định. Vì các thuật toán không dành riêng cho ngôn ngữ nên chúng có thể được triển khai bằng một số ngôn ngữ lập trình. Không có quy tắc chuẩn nào hướng dẫn viết thuật toán. Chúng phụ thuộc vào tài nguyên và vấn đề nhưng chia sẻ một số cấu trúc mã phổ biến, chẳng hạn như kiểm soát luồng [if-else] và vòng lặp [do, while, for]. Trong các phần sau, chúng ta sẽ thảo luận ngắn gọn về thuật toán duyệt cây, sắp xếp, tìm kiếm và đồ thị.

Thuật toán duyệt cây

Truyền tải là một quá trình truy cập tất cả các nút của Cây, bắt đầu từ nút gốc. Một Cây có thể được duyệt theo ba cách khác nhau

– Duyệt theo thứ tự liên quan đến việc truy cập cây con bên trái trước, tiếp theo là gốc và sau đó là cây con bên phải.  

– Trong quá trình duyệt theo thứ tự trước, nút đầu tiên được thăm là nút gốc, tiếp theo là cây con bên trái và cuối cùng là cây con bên phải.  

– Trong thuật toán duyệt theo thứ tự, cây con bên trái được truy cập trước, sau đó đến cây con bên phải, với nút gốc được truy cập cuối cùng

Tìm hiểu thêm. Cách tạo cây quyết định hoàn hảo

thuật toán sắp xếp

Các thuật toán sắp xếp biểu thị các cách sắp xếp dữ liệu theo một định dạng cụ thể. Sắp xếp đảm bảo rằng việc tìm kiếm dữ liệu được tối ưu hóa ở mức cao và dữ liệu được trình bày ở định dạng có thể đọc được. Chúng ta hãy xem năm loại thuật toán Sắp xếp khác nhau trong Python

  • Sắp xếp bong bóng – Thuật toán này dựa trên phép so sánh trong đó có sự hoán đổi lặp đi lặp lại các phần tử liền kề nếu chúng không đúng thứ tự
  • Sắp xếp hợp nhất – Dựa trên thuật toán chia để trị, Sắp xếp hợp nhất chia Mảng thành hai nửa, sắp xếp chúng và sau đó kết hợp chúng
  • Sắp xếp chèn – Việc sắp xếp này bắt đầu bằng việc so sánh và sắp xếp hai phần tử đầu tiên. Sau đó, phần tử thứ ba được so sánh với hai phần tử được sắp xếp trước đó, v.v.
  • Shell Sort – Là một dạng của Insertion sort, nhưng ở đây, các phần tử ở xa được sắp xếp. Một danh sách con lớn của một danh sách nhất định được sắp xếp và kích thước của danh sách giảm dần cho đến khi tất cả các phần tử được sắp xếp.  
  • Sắp xếp lựa chọn – Thuật toán này bắt đầu bằng cách tìm giá trị nhỏ nhất từ ​​​​danh sách các phần tử và đặt nó vào danh sách được sắp xếp. Quá trình này sau đó được lặp lại cho từng phần tử còn lại trong danh sách chưa được sắp xếp. Phần tử mới nhập vào danh sách đã sắp xếp được so sánh với các phần tử hiện có của nó và được đặt vào đúng vị trí. Quá trình tiếp tục cho đến khi tất cả các phần tử được sắp xếp

Các kỹ năng khoa học dữ liệu hàng đầu cần học vào năm 2022

SL. Các kỹ năng khoa học dữ liệu hàng đầu cần học trong năm 20221Khóa học phân tích dữ liệuKhóa học thống kê suy luận2Chương trình kiểm tra giả thuyếtKhóa học hồi quy logistic3Khóa học hồi quy tuyến tínhĐại số tuyến tính để phân tích

thuật toán tìm kiếm

Thuật toán tìm kiếm giúp kiểm tra và truy xuất một phần tử từ các cấu trúc dữ liệu khác nhau. Một loại thuật toán tìm kiếm áp dụng phương pháp tìm kiếm tuần tự trong đó danh sách được duyệt theo thứ tự và mọi phần tử đều được kiểm tra [tìm kiếm tuyến tính]. Trong một loại khác, tìm kiếm theo khoảng, các phần tử được tìm kiếm trong các cấu trúc dữ liệu được sắp xếp [tìm kiếm nhị phân]. Chúng ta hãy xem xét một số ví dụ

  • Tìm kiếm tuyến tính – Trong thuật toán này, từng mục được tìm kiếm tuần tự từng cái một
  • Tìm kiếm nhị phân – Khoảng thời gian tìm kiếm được chia đôi nhiều lần. Nếu phần tử được tìm kiếm thấp hơn thành phần trung tâm của khoảng, thì khoảng được thu hẹp xuống nửa dưới. Nếu không, nó bị thu hẹp ở nửa trên. Quá trình được lặp lại cho đến khi giá trị được tìm thấy.  

thuật toán đồ thị

Có hai phương pháp duyệt đồ thị bằng cách sử dụng các cạnh của chúng. đó là

  • Depth-first Traversal [DFS] – Trong thuật toán này, một biểu đồ được duyệt theo chuyển động theo chiều sâu. Khi bất kỳ bước lặp nào đối mặt với ngõ cụt, một ngăn xếp được sử dụng để đi đến đỉnh tiếp theo và bắt đầu tìm kiếm. DFS được triển khai trong Python bằng cách sử dụng các kiểu dữ liệu đã đặt
  • Truyền tải theo chiều rộng [BFS] – Trong thuật toán này, biểu đồ được duyệt theo chuyển động theo chiều rộng. Khi bất kỳ bước lặp nào đối mặt với ngõ cụt, một hàng đợi được sử dụng để đi đến đỉnh tiếp theo và bắt đầu tìm kiếm. BFS được triển khai trong Python bằng cấu trúc dữ liệu hàng đợi

Phân tích thuật toán

  • Phân tích tiên nghiệm – Điều này thể hiện phân tích lý thuyết về thuật toán trước khi triển khai. Hiệu quả của một thuật toán được đo lường bằng cách giả định rằng các yếu tố, chẳng hạn như tốc độ của bộ xử lý, là không đổi và không ảnh hưởng đến thuật toán
  • Phân tích sau - Điều này đề cập đến phân tích thực nghiệm của thuật toán sau khi triển khai. Một ngôn ngữ lập trình được sử dụng để thực hiện thuật toán đã chọn, tiếp theo là thực thi nó trên máy tính. Phân tích này thu thập số liệu thống kê, chẳng hạn như thời gian và không gian cần thiết để chạy thuật toán

Phần kết luận

Dù bạn là dân lập trình lâu năm hay mới bắt đầu lập trình thì cũng không thể bỏ qua cấu trúc dữ liệu và giải thuật trong Python. Những khái niệm này rất quan trọng khi bạn đang thực hiện các thao tác trên dữ liệu và bạn cần tối ưu hóa quá trình xử lý dữ liệu. Trong khi cấu trúc dữ liệu giúp tổ chức thông tin, thuật toán cung cấp hướng dẫn để giải quyết vấn đề phân tích dữ liệu. Cùng nhau, họ cung cấp một cách để các nhà khoa học máy tính xử lý thông tin được cung cấp dưới dạng dữ liệu đầu vào.

Nếu bạn tò mò muốn tìm hiểu về khoa học dữ liệu, hãy xem Chương trình PG điều hành của IIIT-B & upGrad về Khoa học dữ liệu được tạo ra cho các chuyên gia đang làm việc và cung cấp hơn 10 dự án & nghiên cứu điển hình, hội thảo thực hành thực tế, cố vấn với các chuyên gia trong ngành, 1

Phân loại cấu trúc dữ liệu là gì?

Cấu trúc dữ liệu có thể được phân thành hai loại là - cấu trúc dữ liệu nguyên thủy và cấu trúc dữ liệu không nguyên thủy .

4 cấu trúc dữ liệu trong Python là gì?

Cấu trúc dữ liệu Python cơ bản trong Python bao gồm danh sách, bộ, bộ và từ điển . Mỗi cấu trúc dữ liệu là duy nhất theo cách riêng của nó.

Có bao nhiêu loại cấu trúc dữ liệu trong Python?

Python có bốn cấu trúc dữ liệu chính được phân chia giữa các loại có thể thay đổi [danh sách, từ điển và bộ] và loại không thể thay đổi [bộ dữ liệu].

4 cấu trúc dữ liệu là gì?

Cấu trúc dữ liệu tuyến tính phổ biến là. .
Cấu trúc dữ liệu mảng. Trong một mảng, các phần tử trong bộ nhớ được sắp xếp trong bộ nhớ liên tục. .
Cấu trúc dữ liệu ngăn xếp. Trong cấu trúc dữ liệu ngăn xếp, các phần tử được lưu trữ theo nguyên tắc LIFO. .
Cấu trúc dữ liệu hàng đợi. .
Cấu trúc dữ liệu danh sách liên kết

Chủ Đề