Lặp qua mảng của mảng Python
Khi làm việc với thư viện NumPy, bạn sẽ gặp các tình huống cần lặp qua mảng 1D, 2D và thậm chí cả mảng 3D. Bài viết này sẽ hướng dẫn bạn cách thực hiện nhiệm vụ này Show
💬 câu hỏi. Làm cách nào chúng ta viết mã để lặp qua mảng NumPy 1D, 2D hoặc 3D? Chúng ta có thể hoàn thành nhiệm vụ này bằng một trong các tùy chọn sau
Sự chuẩn bịTrước khi tiếp tục, vui lòng đảm bảo thư viện NumPy đã được cài đặt. Bấm vào đây nếu bạn cần hướng dẫn Sau đó, thêm đoạn mã sau vào đầu mỗi tập lệnh. Đoạn mã này sẽ cho phép mã trong bài viết này chạy không có lỗi import numpy as np Sau khi nhập thư viện NumPy, thư viện này được tham chiếu bằng cách gọi mã ngắn ( atomic_data = np.array([np.arange(1,6), [0, 2, 4, 5, 6]]) for dim in atomic_data: for d in dim: print(d, end=' ')1) Phương pháp 1. Sử dụng Vòng lặp For và np. mảng()Phương pháp này sử dụng vòng lặp atomic_els = np.array(np.arange(1,6)) for el in atomic_els: print(el, end=' ') Ở trên, gọi hàm atomic_data = np.array([np.arange(1,6), [0, 2, 4, 5, 6]]) for dim in atomic_data: for d in dim: print(d, end=' ')5 với hai (2) đối số. vị trí bắt đầu là một (1) và vị trí dừng là năm (5) hoặc (dừng-1). Kết quả là một mảng các số nguyên và lưu vào atomic_data = np.array([np.arange(1,6), [0, 2, 4, 5, 6]]) for dim in atomic_data: for d in dim: print(d, end=' ')6 atomic_data = np.array([np.arange(1,6), [0, 2, 4, 5, 6]]) for dim in atomic_data: for d in dim: print(d, end=' ')7 Tiếp theo, một vòng lặp Đầu ra được gửi đến thiết bị đầu cuối trên một (1) dòng dưới dạng đối số bổ sung được chuyển đến câu lệnh in ( import itertools atomic_num = np.arange(1,4) atomic_phase = ['gas', 'gas', 'solid'] atomic_group = [1, 18, 1] for (a, b, c) in itertools.zip_longest(atomic_num, atomic_phase, atomic_group, fillvalue=0): print (a, b, c)0). Đối số này thay thế ký tự dòng mới mặc định bằng một khoảng trống import itertools atomic_num = np.arange(1,4) atomic_phase = ['gas', 'gas', 'solid'] atomic_group = [1, 18, 1] for (a, b, c) in itertools.zip_longest(atomic_num, atomic_phase, atomic_group, fillvalue=0): print (a, b, c)1 Hướng dẫn NumPy - Mọi thứ bạn cần biết để bắt đầu Xem video này trên YouTube Phương pháp 2. Sử dụng Vòng lặp For và nditer()Phương pháp này sử dụng vòng lặp import itertools atomic_num = np.arange(1,4) atomic_phase = ['gas', 'gas', 'solid'] atomic_group = [1, 18, 1] for (a, b, c) in itertools.zip_longest(atomic_num, atomic_phase, atomic_group, fillvalue=0): print (a, b, c)2 kết hợp với ________0_______1 để lặp qua một mảng NumPy. Dữ liệu năm (5) Số nguyên tử và Số neutron đầu tiên từ màn hình Bảng tuần hoàn cho ví dụ nàyatomic_data = np.array([np.arange(1,6), [0, 2, 4, 5, 6]]) for dim in atomic_data: for d in dim: print(d, end=' ') Ở trên, gọi hàm Tiếp theo, một vòng lặp import itertools atomic_num = np.arange(1,4) atomic_phase = ['gas', 'gas', 'solid'] atomic_group = [1, 18, 1] for (a, b, c) in itertools.zip_longest(atomic_num, atomic_phase, atomic_group, fillvalue=0): print (a, b, c)6 bên ngoài được khởi tạo. Điều này lặp lại qua từng kích thước mảng Bên trong vòng lặp này, một vòng lặp import itertools atomic_num = np.arange(1,4) atomic_phase = ['gas', 'gas', 'solid'] atomic_group = [1, 18, 1] for (a, b, c) in itertools.zip_longest(atomic_num, atomic_phase, atomic_group, fillvalue=0): print (a, b, c)6 khác được khởi tạo. Vòng lặp bên trong lặp qua từng phần tử của các kích thước trên Đầu ra được gửi đến thiết bị đầu cuối trên một (1) dòng dưới dạng đối số bổ sung được chuyển đến câu lệnh in ( import itertools atomic_num = np.arange(1,4) atomic_phase = ['gas', 'gas', 'solid'] atomic_group = [1, 18, 1] for (a, b, c) in itertools.zip_longest(atomic_num, atomic_phase, atomic_group, fillvalue=0): print (a, b, c)0). Đối số này thay thế ký tự dòng mới mặc định bằng một khoảng trống import itertools atomic_num = np.arange(1,4) atomic_phase = ['gas', 'gas', 'solid'] atomic_group = [1, 18, 1] for (a, b, c) in itertools.zip_longest(atomic_num, atomic_phase, atomic_group, fillvalue=0): print (a, b, c)9 💡Lưu ý. Thứ nguyên đầu tiên được đánh dấu để dễ dàng phân biệt các thứ nguyên Phạm vi Python() Hàm. Hướng dẫn minh họa hữu ích Xem video này trên YouTube Phương pháp 3. Sử dụng Vòng lặp For và itertoolsPhương pháp này sử dụng vòng lặp import itertools atomic_num = np.arange(1,4) atomic_phase = ['gas', 'gas', 'solid'] atomic_group = [1, 18, 1] for (a, b, c) in itertools.zip_longest(atomic_num, atomic_phase, atomic_group, fillvalue=0): print (a, b, c)2 và thư viện atomic_els = np.array(np.arange(1,6)) for el in atomic_els: print(el, end=' ')3 tích hợp sẵn của Python để lặp qua một mảng NumPy. Dữ liệu ba (3) Số nguyên tử, Pha và Nhóm đầu tiên từ màn hình Bảng tuần hoàn cho ví dụ này import itertools atomic_num = np.arange(1,4) atomic_phase = ['gas', 'gas', 'solid'] atomic_group = [1, 18, 1] for (a, b, c) in itertools.zip_longest(atomic_num, atomic_phase, atomic_group, fillvalue=0): print (a, b, c) Ở trên, nhập thư viện atomic_els = np.array(np.arange(1,6)) for el in atomic_els: print(el, end=' ')3 để sử dụng hàm atomic_names = np.array(['Hydrogen', 'Helium', 'Lithium', 'Beryllium', 'Boron']) el_count = 0 while el_count < atomic_names.size: print(atomic_names[el_count], end=' ') el_count += 13 Sau đó, ba (3) mảng được khai báo chứa dữ liệu liên quan của ba (3) phần tử đầu tiên trong Bảng tuần hoàn. Họ lưu lần lượt vào atomic_names = np.array(['Hydrogen', 'Helium', 'Lithium', 'Beryllium', 'Boron']) el_count = 0 while el_count < atomic_names.size: print(atomic_names[el_count], end=' ') el_count += 14, atomic_names = np.array(['Hydrogen', 'Helium', 'Lithium', 'Beryllium', 'Boron']) el_count = 0 while el_count < atomic_names.size: print(atomic_names[el_count], end=' ') el_count += 15 và atomic_names = np.array(['Hydrogen', 'Helium', 'Lithium', 'Beryllium', 'Boron']) el_count = 0 while el_count < atomic_names.size: print(atomic_names[el_count], end=' ') el_count += 16 Tiếp theo, vòng lặp import itertools atomic_num = np.arange(1,4) atomic_phase = ['gas', 'gas', 'solid'] atomic_group = [1, 18, 1] for (a, b, c) in itertools.zip_longest(atomic_num, atomic_phase, atomic_group, fillvalue=0): print (a, b, c)2 được khởi tạo và truyền ba (3) đối số bên trong dấu ngoặc _______27_______8 tham chiếu đến các đối số bên trong hàm atomic_names = np.array(['Hydrogen', 'Helium', 'Lithium', 'Beryllium', 'Boron']) el_count = 0 while el_count < atomic_names.size: print(atomic_names[el_count], end=' ') el_count += 19 Một đối số bổ sung ( atomic_names = np.array(['Hydrogen', 'Helium', 'Lithium', 'Beryllium', 'Boron']) for idx, x in np.ndenumerate(atomic_names): print(idx, x)0) cũng được thông qua. Điều này điền vào bất kỳ giá trị còn thiếu nào cho danh sách có độ dài không bằng nhau với giá trị đã nêu Vòng lặp lặp lại cho đến khi đạt đến cuối mảng, xuất ra thiết bị đầu cuối cho mỗi lần lặp atomic_names = np.array(['Hydrogen', 'Helium', 'Lithium', 'Beryllium', 'Boron']) for idx, x in np.ndenumerate(atomic_names): print(idx, x)1 Iterators, Iterables và Itertools Xem video này trên YouTube Phương pháp 4. Sử dụng Vòng lặp While và Kích thướcPhương pháp này sử dụng vòng lặp atomic_names = np.array(['Hydrogen', 'Helium', 'Lithium', 'Beryllium', 'Boron']) for idx, x in np.ndenumerate(atomic_names): print(idx, x)2 kết hợp với
|