Chúng tôi sử dụng
Element at the first position: favTutor
Element at the third position: 32.6
5 để tách mảng, chúng tôi chuyển mảng mà chúng tôi muốn tách và số lần táchThí dụ
Chia mảng thành 3 phần
nhập numpy dưới dạng np
mảng = np. mảng[[1, 2, 3, 4, 5, 6]]
newarr = np. mảng_split[mảng, 3]
in[newarr]
Tự mình thử »Ghi chú. Giá trị trả về là một mảng chứa ba mảng
Nếu mảng có ít phần tử hơn yêu cầu thì sẽ điều chỉnh từ cuối cho phù hợp
Thí dụ
Chia mảng thành 4 phần
nhập numpy dưới dạng np
mảng = np. mảng[[1, 2, 3, 4, 5, 6]]
newarr = np. mảng_split[mảng, 4]
in[newarr]
Tự mình thử »Ghi chú. Chúng tôi cũng có sẵn phương thức
Element at the first position: favTutor
Element at the third position: 32.6
6 nhưng nó sẽ không điều chỉnh các phần tử khi các phần tử ít hơn trong mảng nguồn để tách như trong ví dụ trên, Element at the first position: favTutor
Element at the third position: 32.6
5 hoạt động bình thường nhưng Element at the first position: favTutor
Element at the third position: 32.6
6 sẽ thất bạiChia thành mảng
Giá trị trả về của phương thức
Element at the first position: favTutor
Element at the third position: 32.6
5 là một mảng chứa mỗi phần chia dưới dạng một mảngNếu bạn chia một mảng thành 3 mảng, bạn có thể truy cập chúng từ kết quả giống như bất kỳ phần tử mảng nào
Thí dụ
Truy cập các mảng được chia
nhập numpy dưới dạng np
mảng = np. mảng[[1, 2, 3, 4, 5, 6]]
newarr = np. mảng_split[mảng, 3]
print[newarr[0]]
print[newarr[1]]
print[newarr[2]]
Tách mảng 2-D
Sử dụng cú pháp tương tự khi tách mảng 2 chiều
Sử dụng phương thức
Element at the first position: favTutor
Element at the third position: 32.6
5, chuyển vào mảng bạn muốn tách và số lần tách bạn muốn thực hiện Python nổi tiếng với các lệnh giống tiếng Anh, khả năng đọc mã và cú pháp lập trình đơn giản của nó. Nó cũng cung cấp cho người dùng một loạt các cấu trúc dữ liệu và danh sách là một trong số đó. Cấu trúc dữ liệu Danh sách cho phép chúng tôi lưu trữ một lượng lớn dữ liệu tuần tự trong một biến duy nhất. Một lập trình viên giỏi phải biết cách xử lý và thao tác với Danh sách. Trong bài viết này, bạn sẽ tìm hiểu cách phân vùng danh sách thành các phần có kích thước nhất định. Nhưng trước khi chúng tôi làm điều đó, hãy để chúng tôi cung cấp cho bạn bản tóm tắt nhanh về Danh sáchDanh sách là gì?
Nếu bạn đã quen thuộc với mảng trong các ngôn ngữ lập trình khác nhau thì khái niệm về danh sách sẽ đến với bạn một cách tự nhiên. Danh sách là một trong những kiểu dữ liệu có sẵn trong python, được sử dụng để lưu trữ một tập hợp dữ liệu. Chúng tôi coi danh sách là mảng có kích thước động, cũng có thể lưu trữ dữ liệu không đồng nhất. Bằng các mảng có kích thước động, điều chúng tôi muốn nói là kích thước của danh sách có thể thay đổi trong thời gian chạy. Cuối cùng, danh sách có đặc tính là có thể thay đổi, nghĩa là chúng ta có thể thay đổi danh sách bằng cách thêm hoặc xóa một phần tử ngay cả sau khi tạo chúng. Giống như một mảng, các phần tử của danh sách được lập chỉ mục, với chỉ mục của phần tử đầu tiên là 0
Ví dụ
# create a list List = ["favTutor", 60, 32.6] # acessing elements of the list print["Element at the first position: " +List[0]] print["Element at the third position: " +str[List[2]]]
đầu ra
Element at the first position: favTutor
Element at the third position: 32.6
Chia danh sách thành các khối có kích thước nhất định trong Python
Một số ứng dụng, chẳng hạn như phát triển và học máy, yêu cầu danh sách được phân chia theo một cách nhất định. e. , các khối bằng nhau có kích thước nhất định phải được tạo thành. Không chắc điều này có nghĩa là gì? . Chia danh sách thành các phần bằng nhau trả về một danh sách chứa một số danh sách, mỗi danh sách có số phần tử bằng nhau. Ví dụ: Nếu danh sách đã cho chứa m phần tử và chúng tôi đã cho rằng kích thước của mỗi phần phải là n. Khi đó danh sách mới được tạo sẽ chứa m/n danh sách, mỗi danh sách chứa n phần tử. Xem hình minh họa bên dưới
Nếu độ dài đã cho của danh sách không chia hết cho độ dài đã cho của các đoạn, thì phân vùng cuối cùng phải được lấp đầy bằng các phần tử còn lại. Nhìn vào hình minh họa dưới đây, để hiểu rõ hơn về ý tưởng này
Python cung cấp cho chúng ta 5 phương thức để chia thành các khối có kích thước bằng nhau. Bây giờ chúng ta hãy đi sâu vào từng phương pháp một
1] Sử dụng năng suất
Trước khi thảo luận về cách tiếp cận này, trước tiên chúng ta hãy hiểu ngắn gọn về năng suất là gì. Để làm cho khái niệm này dễ hiểu, chúng ta hãy vẽ một sự tương đồng giữa từ khóa trả về và từ khóa năng suất. Cái trước được sử dụng bên trong một hàm để thoát khỏi một hàm và trả lại một giá trị cho hàm gọi. Cái sau cũng giống như vậy, nhưng có một điểm khác biệt chính, năng suất trả lại một trình tạo cho hàm người gọi chứ không phải bất kỳ đối tượng hoặc cấu trúc dữ liệu nào. Để lặp lại khái niệm này, khi một hàm được gọi và luồng thực thi gặp phải một từ khóa năng suất trong hàm, hàm sẽ bị kết thúc tại dòng đó và người gọi được cung cấp một đối tượng trình tạo
Theo cách tiếp cận này, chúng tôi tạo một trình tạo để tạo ra các khối liên tiếp có kích thước nhất định
Ví dụ
# create a list o_list = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] # generator def partition[lst, size]: for i in range[0, len[lst], size]: yield lst[i : i+size] # size of each chunk n = 2 # partition the list p_list = list[partition[o_list, n]] # display original list print["Original List: "] print[o_list] # display the list results print["Partitioned List:"] print[p_list]
đầu ra
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100] Partitioned List: [[10, 20], [30, 40], [50, 60], [70, 80], [90, 100]]
2] Sử dụng hiểu danh sách
Danh sách hiểu cung cấp cho chúng tôi một cách thanh lịch hơn để đạt được mục tiêu của chúng tôi. Đó là một cách ngắn gọn và súc tích để tạo một danh sách mới từ một danh sách, bộ dữ liệu, chuỗi hiện có, v.v. Việc hiểu danh sách bao gồm một biểu thức và một vòng lặp for. Vòng lặp for được sử dụng để lặp qua từng phần tử của danh sách ban đầu và biểu thức được thực thi cho từng phần tử đó. Giá trị mới của từng phần tử, được tạo bằng biểu thức được bao gồm trong danh sách mới. Bây giờ bạn có thể tự hỏi làm thế nào chúng ta có thể tách một danh sách bằng cách sử dụng khả năng hiểu Danh sách? .
Cách tiếp cận này kết hợp các khái niệm về cắt danh sách và hiểu danh sách. Trước tiên, chúng tôi lặp qua độ dài của danh sách ban đầu, với kích thước bước bằng với kích thước khối đã cho. Sử dụng giá trị của trình vòng lặp, chúng tôi phân vùng danh sách ban đầu thành các danh sách nhỏ hơn
Ví dụ
# create a list o_list = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] # size of each chunk n = 3 # partition the list using list comprehension p_list = [o_list[i:i + n] for i in range[0, len[o_list], n]] # display original list print["Original List: "] print[o_list] # display the list results print["Partitioned List:"] print[p_list]
đầu ra
Original List: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] Partitioned List: [[10, 20, 30], [40, 50, 60], [70, 80, 90], [100]]
3] Sử dụng mô-đun itertools
Ngôn ngữ Python đi kèm với một số lượng lớn các mô-đun và itertools là một trong số đó. Mô-đun này có một phương thức gọi là islice[], để tạo một lát cắt của danh sách. Trước tiên chúng ta hãy xem cú pháp phương thức của hàm này để hiểu rõ hơn
itertools.islice[iterable, start, stop[, step]]
Phương thức này có bốn đối số. có thể lặp lại, bắt đầu, dừng và bước. Đối số iterable, trong trường hợp này, là danh sách mà chúng ta muốn chia thành nhiều phần. Chỉ mục bắt đầu đề cập đến chỉ mục đó của danh sách gốc mà từ đó các phần tử sẽ được đưa vào lát cắt. Mặt khác, chỉ mục dừng đề cập đến chỉ mục đó cho đến khi các phần tử được đưa vào. Đối số bước cho phép chúng ta bỏ qua các phần tử. Bây giờ hãy cho chúng tôi hiểu, làm thế nào chúng tôi có thể chia danh sách thành các phần nhỏ hơn với kích thước nhất định bằng phương pháp này
Theo cách tiếp cận này, chúng tôi tạo một phương thức trình tạo tạo ra một lát hoặc đoạn của danh sách gốc.
Ví dụ
import itertools # create a list o_list = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] # generator def partition[lst, size]: for i in range[0, len[lst], size]: yield list[itertools.islice[lst, i, i + size]] # size of each chunk n = 3 # partition the list p_list = list[partition[o_list, n]] # display original list print["Original List: "] print[o_list] # display the list results print["Partitioned List:"] print[p_list]
đầu ra
Original List: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] Partitioned List: [[10, 20, 30], [40, 50, 60], [70, 80, 90], [100]]
4] Sử dụng công cụ. mô-đun itertoolz
Nếu khái niệm sử dụng năng suất hoặc hiểu danh sách gây nhầm lẫn cho bạn, thì đừng lo lắng. Bạn có thể sử dụng phương pháp đơn giản này để đạt được mục tiêu của mình. Công cụ. mô-đun itertools của python chứa phương thức partition[]. Trước tiên chúng ta hãy xem cú pháp phương thức của phương thức này
toolz.itertoolz.partition[n, seq, pad='__no__pad__']
Phương thức này chỉ đơn giản lấy kích thước của khối làm tham số đầu tiên và danh sách cần chia làm tham số thứ hai. Hãy xem ví dụ bên dưới, để biết chính xác cách người ta có thể sử dụng phương pháp này để đạt được phân vùng danh sách thành các phần có kích thước bằng nhau
Ví dụ
Element at the first position: favTutor
Element at the third position: 32.6
0
đầu ra
Original List: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] Partitioned List: [[10, 20, 30], [40, 50, 60], [70, 80, 90], [100]]
5] Sử dụng NumPy
Numpy là một thư viện trong python rất nổi tiếng với việc xử lý các mảng một cách độc đáo. Mô-đun này chứa một số phương pháp để thực hiện các phép toán liên quan đến đại số tuyến tính, biến đổi Fourier và ma trận. Nó cũng bao gồm một phương thức gọi là array_spit[], nó thực hiện cùng nhiệm vụ mà chúng ta đang cố gắng đạt được. Cú pháp phương thức của hàm này như sau
Element at the first position: favTutor
Element at the third position: 32.6
2
Phương thức này lấy danh sách được phân vùng làm đối số đầu tiên và kích thước của các khối làm đối số thứ hai. Đối số trục xuất hiện khi chúng ta đang làm việc với các khung dữ liệu. Nhưng vì hôm nay chúng ta chỉ làm việc với các danh sách đơn giản nên bạn có thể bỏ qua đối số này lúc này. Bây giờ chúng ta hãy xem chức năng này đang hoạt động
Ví dụ
Element at the first position: favTutor
Element at the third position: 32.6
3
đầu ra
Element at the first position: favTutor
Element at the third position: 32.6
4Sự kết luận
Danh sách này là một trong những khái niệm cơ bản nhất về trăn và biết cách đi xung quanh chúng là một kỹ năng mà mọi người phải sở hữu. Trong bài viết này, chúng ta đã thấy năm cách khác nhau về cách chúng ta có thể phân vùng danh sách thành các phần có kích thước nhất định. Chúng tôi yêu cầu bạn xem xét kỹ lưỡng tất cả các phương pháp đã thảo luận ở trên vì chúng rất hiệu quả và hữu ích