1. Duyệt Mảng Numpy Bằng Np.nditer() - Lập Trình Từ Đầu
Có thể bạn quan tâm
Cũng giống như các kiểu LIST, Tuple.. trong Python. Mảng trong Numpy cũng có thể được duyệt để xử lý các phần tử có bên trong. Chúng ta có thể duyệt mảng Numpy với vòng lặp for kết hợp với sử dụng đối tượng lặp nditer có sẵn của Numpy.
1. Duyệt mảng Numpy bằng np.nditer()Thư viện Numpy đã cung cấp sẵn cho chúng ta hàm np.nditer() để duyệt qua các phần tử có trong mảng 1 chiều, 2 chiều….- hàm này cần nhận vào một mảng có kiểu “numpy.array” và thực hiện lặp qua tất cả các phần tử có trong mảng đầu vào.
Ví dụ dưới đây, sử dụng np.nditer() để duyệt qua các phần tử có trong mảng 1 chiều như sau:
import numpy as np # Tao mang 1 chieu trong khoang 0 den 30 co buoc nhay la 5 a = np.arange(0,30,5) print("Mang ban dau") print(a) print("Duyet cac phan tu trong mang") for x in np.nditer(a): print(x, end=" ")Kết quả:
[ 0 5 10 15 20 25] Duye cac phan tu trong mang 0 5 10 15 20 25Ví dụ tiếp theo, sử dụng hàm np.nditer() để duyệt qua các phần tử có trong mảng 2 chiều có kích thước 2 x 3 như sau:
import numpy as np # Tao mang 2 chieu co kich thuoc 3 x 2 a = np.arange(0,30,5).reshape(2,3) print("Mang ban dau") print(a) print("Duyet cac phan tu trong mang") for x in np.nditer(a): print(x, end=" ")Kết quả:
Mang ban dau [[ 0 5 10] [15 20 25]] Duyet cac phan tu trong mang 0 5 10 15 20 25 2. Duyệt và sửa giá trị của phần tử mảng Numpy Đối tượng nditer có một tham số tùy chọn khác được gọi là op_flags. Giá trị mặc định của nó là chỉ đọc, nhưng có thể được đặt ở chế độ chỉ đọc-ghi hoặc chỉ ghi. Điều này sẽ cho phép sửa đổi các phần tử mảng bằng cách sử dụng trình lặp này. Ví dụ dưới đây, lặp qua các phần tử có trong mảng 1 chiều và nhân từng phần tử có trong mảng 1 chiều này với 3 bằng cách sử dụng hàm np.nditer với tham số op_flags = [‘readwrite’] như sau: import numpy as np # Tao mang 1 chieu trong khoang 0 den 30 co buoc nhay la 5 a = np.arange(0,30,5) print("Mang ban dau") print(a) # Duyet cac phan tu trong mang va nhan voi 3 for x in np.nditer(a, op_flags = ['readwrite']): x[...] = x * 3 print("Mang sau khi duyet va nhan voi 3") print(a)Kết quả:
Mang ban dau [ 0 5 10 15 20 25] Mang sau khi duyet va nhan voi 3 [ 0 15 30 45 60 75]Ví dụ tiếp theo, lặp qua các phần tử có trong mảng 2 chiều và nhân từng phần tử có trong mảng 2 chiều này với 2 bằng cách sử dụng hàm np.nditer với tham số op_flags = [‘readwrite’] như sau:
import numpy as np # Tao mang 2 chieu trong khoang 0 den 30 co buoc nhay la 5 a = np.arange(0,30,5).reshape(2,3) print("Mang ban dau") print(a) # Duyet cac phan tu trong mang va nhan voi 2 for x in np.nditer(a, op_flags = ['readwrite']): x[...] = x * 2 print("Mang sau khi duyet va nhan voi 2") print(a)Kết quả:
Mang ban dau [[ 0 5 10] [15 20 25]] Mang sau khi duyet va nhan voi 2 [[ 0 10 20] [30 40 50]] 3. Duyệt bên ngoài mảng NumpyTrong những phần trên, chúng ta đã sử dụng hàm np.nditer để lặp qua từng phần tử có trong mảng 1 chiều hoặc mảng 2 chiều. Tuy nhiên, trong mố số trường hợp chúng không cần duyệt và trả về từng phần tử trong mảng mà thay vào đó ta cần duyệt qua mảng và trả về các giá trị sau khi duyệt là các phần tử được xếp vào trong mảng 1 chiều.
Khi đó ta cần sử dụng hàm np.nditer() với tham số flags = [“external_loop “] và tham số order = ‘F’ để cắt ra các phần tử theo cột, ví dụ như sau:
import numpy as np # Tao mang 2 chieu trong khoang 0 den 30 co buoc nhay la 5 a = np.arange(0,30,5).reshape(2,3) print("Mang ban dau") print(a) print("Mang sau khi duyet") for x in np.nditer(a, flags = ['external_loop'], order='F'): print(x, end=" ")Kết quả:
Mang ban dau [[ 0 5 10] [15 20 25]] Mang sau khi duyet [ 0 15] [ 5 20] [10 25]Từ khóa » Duyệt Mảng Trong Python
-
Bài 11: Duyệt Mảng - Numpy Trong Python
-
Kiểu List (mảng) Trong Python - Freetuts
-
Mảng Trong Python - Techacademy
-
Duyệt Mảng Trong NumPy - W3seo Cách Duyệt Vòng Lặp Trong Array
-
Mảng Là Gì? Cách Sử Dụng Mảng Trong Python - Blog
-
Mảng Trong Python
-
Mảng Trong Python - TEK4
-
[NumPy Library-2] Mảng N-chiều Trong NumPy - Viblo
-
Ví Dụ Sử Dụng Chỉ Số Index Của Mảng Trong Python để Lấy Ra Nhiều ...
-
Vòng Lặp For Trong Numpy
-
Sử Dụng List Trong Python | Lê Vũ Nguyên Dạy Học Lập Trình
-
ncatenate () Bằng Python - W3seo Nối Array Trong Numpy
-
Vòng Lặp Trong Python - Openplanning