Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách sử dụng hàm reshape() trong NumPy
Trong bài viết này, bạn sẽ học cách sử dụng hàm numpy reshape()
để thay đổi hình dạng của một mảng. Hàm reshape()
là một công cụ mạnh mẽ trong thư viện NumPy, cho phép bạn thay đổi cấu trúc của mảng mà không làm thay đổi dữ liệu bên trong. Việc này rất hữu ích khi bạn cần điều chỉnh dữ liệu cho các phép tính toán khác nhau hoặc để phù hợp với các yêu cầu đầu vào của các hàm và thuật toán khác. Bây giờ, chúng ta sẽ cùng tìm hiểu cách sử dụng hàm numpy reshape()
thông qua các ví dụ cụ thể.
Giới thiệu về hàm reshape()
trong Numpy
Hình dạng của một mảng lưu trữ số chiều (hoặc trục) và số phần tử trên mỗi chiều. Thuộc tính shape
trả về một tuple mô tả hình dạng của mảng.
Hàm reshape()
thay đổi hình dạng của một mảng mà không thay đổi các phần tử của nó. Đây là cú pháp của hàm reshape()
:
numpy.reshape(a, newshape, order='C')
Trong cú pháp này, hàm reshape()
thay đổi hình dạng của mảng a
thành newshape
nhưng giữ nguyên số lượng phần tử.
Bài viết này được đăng tại [free tuts .net]
Hàm reshape()
tương đương với việc gọi phương thức reshape()
trên mảng a
:
a.reshape(newshape, order='C')
Ví dụ về hàm reshape()
trong Numpy
Hãy xem một số ví dụ về việc sử dụng hàm reshape()
.
Sử dụng hàm numpy reshape()
với mảng 1-D
Ví dụ sau sử dụng hàm numpy reshape()
để thay đổi một mảng 1-D có 4 phần tử thành một mảng 2-D:
import numpy as np a = np.arange(1, 5) print(a) b = np.reshape(a, (2, 2)) print(b)
Kết quả:
[1 2 3 4] [[1 2] [3 4]]
Cách hoạt động:
-
Đầu tiên, tạo một mảng 1-D với bốn số từ 1 đến 4 bằng cách sử dụng hàm
arange()
:
a = np.arange(1, 5) print(a)
Thứ hai, thay đổi hình dạng của mảng a
thành một mảng hai chiều, mỗi chiều có 2 phần tử:
b = np.reshape(a, (2, 2)) print(b)
Hàm numpy reshape()
trả về một view
Lưu ý rằng mảng b
là một view của mảng a
. Điều này có nghĩa là nếu bạn thay đổi một phần tử của mảng b
, sự thay đổi này sẽ được phản ánh trong mảng a
. Ví dụ:
import numpy as np a = np.arange(1, 5) b = np.reshape(a, (2, 2)) # thay đổi phần tử [0,0] b[0, 0] = 0 print(b) print(a)
Kết quả:
[[0 2] [3 4]] [0 2 3 4]
Trong ví dụ này, mình thay đổi phần tử tại chỉ số [0,0]
trong mảng b
. Sự thay đổi này cũng được phản ánh trong mảng a
.
Kết bài
Sử dụng hàm numpy reshape()
để thay đổi hình dạng của một mảng mà không thay đổi các phần tử của nó là một kỹ thuật quan trọng trong xử lý dữ liệu. Hàm reshape()
cho phép bạn linh hoạt hơn trong việc thao tác với dữ liệu, đảm bảo rằng cấu trúc của mảng phù hợp với yêu cầu của các thuật toán và phép tính toán khác nhau. Điều quan trọng cần nhớ là bạn có thể thay đổi hình dạng của một mảng miễn là số lượng phần tử trong mảng không thay đổi. Qua các ví dụ minh họa, chúng ta đã thấy cách sử dụng hàm reshape()
một cách hiệu quả, giúp tối ưu hóa và đơn giản hóa quá trình xử lý dữ liệu trong Python với NumPy.