Phân bổ mảng Python
Điều quan trọng là phải hiểu cách Python triển khai các danh sách và cách chúng hoạt động, vì vậy chúng tôi có thể quyết định xem chúng có phải là bộ sưu tập phù hợp cho các giá trị của chúng tôi hay không Show
Các bộ sưu tập khác nhau có các đặc điểm hiệu suất khác nhau để đọc và viết Chọn một bộ sưu tập phù hợp đảm bảo chúng tôi sẽ nhận được hiệu suất cần thiết cho một nhiệm vụ nhất định Mảng là gì?Theo truyền thống (trong C và các ngôn ngữ tương tự), mảng lưu trữ các giá trị cùng loại và lưu trữ chúng tuần tự trong bộ nhớ vật lý, cái này nối tiếp cái kia. Cách bố trí bộ nhớ này làm cho các mảng được đọc nhanh vì chúng ta chỉ cần đọc một đoạn bộ nhớ theo trình tự và chúng ta không cần phải nhảy qua nhảy lại Mảng cũng rất nhanh khi truy cập các mục theo chỉ mục - vì chúng ta có thể lấy địa chỉ bộ nhớ của một mục trong mảng bằng cách thực hiện phép tính số học đơn giản. Theo truyền thống, chúng ta không thể thay đổi độ dài của mảng Nếu chúng ta muốn thêm hoặc xóa các phần tử khỏi một mảng, chúng ta phải tạo một mảng mới và sao chép các giá trị vào đó Tại sao? Bởi vì bộ nhớ bổ sung mà chúng ta cần nằm ngay sau bộ nhớ của mảng và có thể đã bị chiếm dụng. Vì vậy, nếu chúng ta muốn thêm một mục vào mảng, chúng ta cần phân bổ một đoạn bộ nhớ mới đủ lớn cho tất cả các mục và sao chép tất cả các mục từ mảng cũ và viết mục mới của chúng ta vào đó Vì vậy, bây giờ, khi chúng ta hiểu mảng là gì và nó hoạt động như thế nào, chúng ta có thể thảo luận về cách hoạt động của một danh sách trong Python Cách danh sách hoạt động trong PythonDanh sách hoạt động như thế nào trong Python? đến tài liệu Python thảo luận ngắn gọn về việc triển khai danh sách Tài liệu cho biết danh sách là mảng có độ dài thay đổi Mảng có độ dài thay đổi có nghĩa là độ dài của nó có thể thay đổi bằng cách thêm/chèn hoặc xóa các mục. Tính linh hoạt này là tốt, và có vẻ đơn giản từ bên ngoài Tuy nhiên, trong nội bộ, Python vẫn phải phân bổ lại bộ nhớ và di chuyển các mục cho chúng tôi, vì vậy chúng tôi không phải làm điều đó. Nhưng nó vẫn cần phải xảy ra Đó là lý do tại sao chèn vào mảng chậm. Hoặc thêm vào nó Python áp dụng một số tính năng thông minh để giúp việc nối thêm nhanh hơn, như đã đề cập trong tài liệu. Và danh sách càng lớn thì càng có nhiều bộ nhớ Python được phân bổ (vì nó giả định rằng sẽ có nhiều phần bổ sung hơn)
Liệt kê các con trỏ lưu trữTrước đây, chúng tôi đã đề cập rằng các mảng lưu trữ các giá trị cùng loại Nhưng một danh sách không nhất thiết phải chứa các mục cùng loại. Làm sao vậy? Lý do là danh sách của Python không lưu trữ các giá trị thực mà là các con trỏ (tham chiếu) tới chúng Trong thế giới chuyển động vô cùng nhanh chóng, người ta cần các kỹ thuật mã hóa tháo vát có thể giúp lập trình viên tổng hợp các mã khổng lồ theo những cách đơn giản và thuận tiện nhất. Mảng là một trong những cấu trúc dữ liệu giúp bạn viết một số giá trị vào một biến duy nhất, do đó giảm bớt gánh nặng ghi nhớ một số lượng lớn các biến. Vì vậy, hãy tiếp tục và xem cách bạn có thể triển khai Mảng trong Python Dưới đây là tổng quan về các chủ đề giải thích tất cả các khía cạnh liên quan đến mảng
Sự kết hợp của Mảng, cùng với Python có thể giúp bạn tiết kiệm rất nhiều thời gian. Như đã đề cập trước đó, mảng giúp bạn giảm kích thước tổng thể của mã, trong khi Python giúp bạn loại bỏ cú pháp có vấn đề, không giống như các ngôn ngữ khác. Ví dụ. Nếu bạn phải lưu trữ các số nguyên từ 1–100, bạn sẽ không thể nhớ rõ ràng 100 tên biến, do đó, bạn có thể lưu chúng dễ dàng bằng cách sử dụng một mảng Bây giờ bạn đã nhận thức được tầm quan trọng của mảng trong Python, hãy cùng tìm hiểu chi tiết hơn về nó Mảng là gì?Mảng về cơ bản là một cấu trúc dữ liệu có thể chứa nhiều hơn một giá trị tại một thời điểm. Nó là một tập hợp hoặc một loạt các phần tử cùng loại được sắp xếp theo thứ tự a=arr.array('d',[1.2,1.3,2.3]) Chúng ta có thể lặp qua các mục mảng một cách dễ dàng và tìm nạp các giá trị cần thiết bằng cách chỉ định số chỉ mục. Mảng cũng có thể thay đổi (có thể thay đổi), do đó, bạn có thể thực hiện các thao tác khác nhau theo yêu cầu Bây giờ, luôn có một câu hỏi xuất hiện trong đầu chúng ta - Danh sách Python có giống như một Mảng không?Cấu trúc dữ liệu 'mảng' trong python lõi không hiệu quả hoặc đáng tin cậy. Do đó, khi chúng ta nói về mảng python, chúng ta thường có nghĩa là danh sách python Tuy nhiên, python cung cấp Mảng Numpy là một lưới các giá trị được sử dụng trong Khoa học dữ liệu Tạo một mảngMảng trong Python có thể được tạo sau khi nhập mô-đun mảng như sau - → nhập mảng dưới dạng arr Hàm mảng (kiểu dữ liệu, danh sách giá trị) nhận hai tham số, tham số đầu tiên là kiểu dữ liệu của giá trị được lưu trữ và tham số thứ hai là danh sách giá trị. Kiểu dữ liệu có thể là bất cứ thứ gì như int, float, double, v.v. Vui lòng lưu ý rằng arr là tên bí danh và để dễ sử dụng. Bạn cũng có thể nhập mà không cần bí danh. Có một cách khác để nhập mô-đun mảng đó là - → từ nhập mảng * Điều này có nghĩa là bạn muốn nhập tất cả các chức năng từ mô-đun mảng Cú pháp sau đây được sử dụng để tạo một mảng cú pháp #when you import using arr alias HOẶC LÀ #when you import using * Thí dụ. a=mảng. mảng( ‘d’ , [1. 1 , 2. 1 ,3. 1] ) Ở đây, tham số đầu tiên là 'd' là kiểu dữ liệu tôi. e. float và các giá trị được chỉ định làm tham số tiếp theo
Bảng sau đây cho bạn thấy các loại dữ liệu khác nhau và mã của chúng Truy cập các phần tử mảngĐể truy cập các phần tử mảng, bạn cần chỉ định các giá trị chỉ số. Lập chỉ mục bắt đầu từ 0 chứ không phải từ 1. Do đó, số chỉ mục luôn nhỏ hơn 1 so với độ dài của mảng cú pháp Array_name[giá trị chỉ mục] a=arr.array( 'd', [1.1 , 2.1 ,3.1] ) đầu ra 2.1 Đầu ra được trả về là giá trị, hiện ở vị trí thứ hai trong mảng của chúng tôi là 2. 1 Bây giờ chúng ta hãy xem xét một số thao tác mảng cơ bản Các phép toán mảng cơ bảnCó nhiều thao tác có thể được thực hiện trên các mảng như sau - Tìm độ dài của một mảngĐộ dài của một mảng là số phần tử thực sự có mặt trong một mảng. Bạn có thể sử dụng chức năng len() để đạt được điều này. Hàm len() trả về một giá trị nguyên bằng số phần tử có trong mảng đó cú pháp → len(array_name) Thí dụ a=arr.array('d', [1.1 , 2.1 ,3.1] ) đầu ra 3 Điều này trả về giá trị là 3 bằng với số phần tử mảng Thêm/Thay đổi các phần tử của ArrayChúng ta có thể thêm giá trị vào một mảng bằng cách sử dụng các hàm append(), extend() và insert (i,x) Hàm append() được sử dụng khi chúng ta cần thêm một phần tử vào cuối mảng Thí dụ ________số 8Đầu ra – array(‘d’, [1.1, 2.1, 3.1, 3.4]) Mảng kết quả là mảng thực tế với giá trị mới được thêm vào cuối của nó. Để thêm nhiều hơn một phần tử, bạn có thể sử dụng hàm extension(). Hàm này lấy một danh sách các phần tử làm tham số của nó. Nội dung của danh sách này là các phần tử sẽ được thêm vào mảng Thí dụ a=arr.array('d',[1.2,1.3,2.3]) 0Đầu ra – #when you import using arr alias 0Mảng kết quả sẽ chứa tất cả 3 phần tử mới được thêm vào cuối mảng Tuy nhiên, khi bạn cần thêm một phần tử cụ thể vào một vị trí cụ thể trong mảng, có thể sử dụng hàm insert(i,x). Hàm này chèn phần tử vào chỉ mục tương ứng trong mảng. Nó nhận 2 tham số trong đó tham số đầu tiên là chỉ mục cần chèn phần tử và tham số thứ hai là giá trị Thí dụ #when you import using arr alias 1Đầu ra – #when you import using arr alias 2Mảng kết quả chứa giá trị 3. 8 ở vị trí thứ 3 trong mảng Mảng cũng có thể được hợp nhất bằng cách thực hiện nối mảng nối mảngBất kỳ hai mảng nào cũng có thể được nối bằng ký hiệu + Thí dụ #when you import using arr alias 3Đầu ra - #when you import using arr alias 4Kết quả mảng c chứa các phần tử nối của mảng a và b Bây giờ, hãy xem cách bạn có thể loại bỏ hoặc xóa các mục khỏi một mảng Xóa/Xóa phần tử của mảngCác phần tử của mảng có thể được gỡ bỏ bằng phương thức pop() hoặc remove(). Sự khác biệt giữa hai hàm này là hàm trước trả về giá trị đã xóa trong khi hàm sau thì không Hàm pop() không nhận tham số hoặc giá trị chỉ mục làm tham số. Khi không có tham số nào được đưa ra, hàm này bật () phần tử cuối cùng và trả về nó. Khi bạn cung cấp giá trị chỉ mục một cách rõ ràng, hàm pop() bật ra các phần tử được yêu cầu và trả về nó Thí dụ #when you import using arr alias 5Đầu ra - #when you import using arr alias 6Hàm pop() đầu tiên loại bỏ giá trị cuối cùng 4. 6 và trả về tương tự trong khi cái thứ hai bật giá trị ở vị trí thứ 4 là 3. 1 và trả lại như cũ Mặt khác, hàm remove() được sử dụng để xóa giá trị mà chúng ta không cần giá trị đã xóa được trả về. Hàm này lấy chính giá trị phần tử làm tham số. Nếu bạn đưa giá trị chỉ mục vào vị trí tham số, nó sẽ báo lỗi Thí dụ #when you import using arr alias 7Đầu ra - #when you import using arr alias 8Đầu ra là một mảng chứa tất cả các phần tử ngoại trừ 1. 1 Khi bạn muốn một phạm vi giá trị cụ thể từ một mảng, bạn có thể cắt mảng để trả về giống như sau Cắt một mảngMột mảng có thể được cắt bằng cách sử dụng. Biểu tượng. Điều này trả về một loạt các phần tử mà chúng tôi đã chỉ định bởi các số chỉ mục Thí dụ #when you import using arr alias 9Đầu ra – #when you import using * 0Kết quả sẽ là các phần tử có mặt ở vị trí thứ 1, thứ 2 và thứ 3 trong mảng Vòng qua một mảngSử dụng vòng lặp for, chúng ta có thể lặp qua một mảng Thí dụ #when you import using * 1Đầu ra – #when you import using * 2Đầu ra ở trên cho thấy kết quả sử dụng vòng lặp for. Khi chúng ta sử dụng vòng lặp for mà không có bất kỳ tham số cụ thể nào, kết quả sẽ chứa tất cả các phần tử của mảng được cung cấp cùng một lúc. Trong vòng lặp for thứ hai, kết quả chỉ chứa các phần tử được chỉ định bằng cách sử dụng các giá trị chỉ mục. Xin lưu ý rằng kết quả không chứa giá trị ở chỉ mục số 3 Hy vọng bạn rõ ràng với tất cả những gì đã được chia sẻ với bạn trong hướng dẫn này. Điều này đưa chúng ta đến phần cuối của bài viết về Mảng trong Python. Hãy chắc chắn rằng bạn thực hành càng nhiều càng tốt và hoàn nguyên kinh nghiệm của bạn Nếu bạn muốn xem thêm các bài viết về các công nghệ đang thịnh hành nhất trên thị trường như Trí tuệ nhân tạo, DevOps, Ethical Hacking, thì bạn có thể tham khảo trang web chính thức của Edureka Hãy tìm các bài viết khác trong loạt bài này sẽ giải thích nhiều khía cạnh khác của Python và Khoa học dữ liệu Mảng là gì [. ] trong Python?Mảng trong Python là Cấu trúc dữ liệu có thể chứa nhiều giá trị cùng loại. Thông thường, chúng bị hiểu sai thành danh sách hoặc Mảng Numpy
Tôi có nên phân bổ trước mảng Python không?Bạn không cần phân bổ trước bất kỳ thứ gì . Đằng sau hậu trường, loại danh sách sẽ định kỳ phân bổ nhiều dung lượng hơn mức cần thiết để sử dụng ngay lập tức để phân bổ chi phí thay đổi kích thước mảng cơ bản qua nhiều lần cập nhật.
Làm cách nào để điền vào một mảng trong Python?Sử dụng hàm NumPy fill() để điền giá trị vào mảng . Hàm NumPy fill() được sử dụng để điền vào một mảng NumPy đã tồn tại với các giá trị tương tự. Hàm này lấy giá trị và kiểu dữ liệu làm tham số đầu vào và điền vào mảng với giá trị đã chỉ định.
Có một mảng động trong Python không?Một điểm khác biệt lớn nhất về cách triển khai mảng trong Python là chúng không phải là mảng thông thường, chúng là mảng động . Một mảng động có thuộc tính tự động thay đổi kích thước. Các mảng chúng tôi xác định không còn cần phải có kích thước cố định, số lượng phần tử chúng tôi có trong chúng có thể thay đổi (tăng hoặc giảm) bất cứ lúc nào. |