Hướng dẫn np.reshape trong python

Hàm numpy.reshape () có sẵn trong gói NumPy. Như tên cho thấy, reshape có nghĩa là ‘những thay đổi về hình dạng’. Hàm numpy.reshape () giúp chúng ta có được một hình dạng mới cho một mảng mà không thay đổi dữ liệu của nó.

Các bài viết liên quan:

Đôi khi, chúng ta cần định hình lại dữ liệu từ rộng sang dài. Vì vậy, trong tình huống này, chúng ta phải định hình lại mảng bằng cách sử dụng hàm reshape ().

Cú pháp

numpy.reshape (arr, new_shape, order = 'C')

Tham số:

Có các tham số sau của hàm reshape ():

  1. arr: array_like

Đây là một ndarray. Đây là mảng nguồn mà chúng tôi muốn định hình lại. Tham số này rất cần thiết và đóng một vai trò quan trọng trong hàm numpy.reshape ().

  1. new_shape: int hoặc nhiều int

Hình dạng mà chúng ta muốn chuyển đổi mảng ban đầu của chúng ta phải tương thích với mảng ban đầu. Nếu là số nguyên, kết quả sẽ là mảng 1-D có độ dài đó. Một kích thước hình dạng có thể là -1. Ở đây, giá trị được tính gần đúng bởi độ dài của mảng và các kích thước còn lại.

  1. order: {‘C’, ‘F’, ‘A’}, tùy chọn

Tham số thứ tự chỉ mục này đóng một vai trò quan trọng trong hàm reshape (). Các thứ tự chỉ mục này được sử dụng để đọc các phần tử của mảng nguồn và đặt các phần tử vào mảng được định hình lại bằng cách sử dụng thứ tự chỉ mục này.

Thứ tự chỉ mục ‘C’ có nghĩa là đọc / ghi các phần tử đang sử dụng thứ tự chỉ mục giống C trong đó chỉ mục trục cuối cùng thay đổi nhanh nhất, quay lại chỉ mục trục đầu tiên thay đổi chậm nhất.

Thứ tự chỉ mục ‘F’ có nghĩa là đọc / ghi các phần tử đang sử dụng thứ tự chỉ mục giống Fortran, trong đó chỉ số trục cuối cùng thay đổi chậm nhất và chỉ số trục đầu tiên thay đổi nhanh nhất.

Thứ tự ‘C’ và ‘F’ không chiếm dung lượng bố trí bộ nhớ của mảng bên dưới và chỉ tham chiếu đến thứ tự lập chỉ mục.

Thứ tự chỉ mục ‘A’ có nghĩa là đọc / ghi các phần tử theo thứ tự chỉ mục giống Fortran, khi arr tiếp giáp trong bộ nhớ, nếu không thì sử dụng thứ tự giống C.

Return

Hàm này trả về một ndarray. Nó là một đối tượng xem mới nếu có thể; nếu không, nó sẽ là một bản sao. Không có gì đảm bảo về bố cục bộ nhớ của mảng được trả về.

Ví dụ 1: Thứ tự chỉ mục giống C

import numpy as np  
x=np.arange(12)  
y=np.reshape(x, (4,3))  
x  
y  

Output:

Hướng dẫn np.reshape trong python

Trong đoạn code trên

  • Chúng tôi đã tạo một mảng ‘a’ bằng hàm np.arrange ().
  • Chúng tôi đã khai báo biến ‘y’ và gán giá trị trả về của hàm np.reshape ().
  • Chúng ta đã chuyển mảng ‘x’ và hình dạng trong hàm.
  • Cuối cùng, chúng tôi đã cố gắng in giá trị của arr.
  • Trong đầu ra, mảng đã được biểu diễn dưới dạng ba hàng và bốn cột.

Ví dụ 2: Tương đương với C ravel thì C reshape

import numpy as np  
x=np.arange(12)  
y=np.reshape(np.ravel(x),(3,4))  
x  
y  

Hàm ravel () được sử dụng để tạo một mảng phẳng liền kề. Mảng một chiều chứa các phần tử của đầu vào, được trả về. Một bản sao chỉ được thực hiện khi nó cần thiết.

Output:

Hướng dẫn np.reshape trong python

Ví dụ 3: Thứ tự chỉ mục giống Fortran

import numpy as np  
x=np.arange(12)  
y=np.reshape(x, (4, 3), order='F')  
x  
y  

Output:

Hướng dẫn np.reshape trong python

Trong đoạn code trên

  • Chúng tôi đã tạo một mảng ‘a’ bằng hàm np.arrange ().
  • Chúng tôi đã khai báo biến ‘y’ và gán giá trị trả về của hàm np.reshape ().
  • Chúng tôi đã chuyển mảng ‘x’ và hình dạng và thứ tự chỉ mục giống Fortran trong hàm.
  • Cuối cùng, chúng tôi đã cố gắng in giá trị của arr.

Trong đầu ra, mảng đã được biểu diễn dưới dạng bốn hàng và ba cột.

Ví dụ 4: Thứ tự chỉ mục giống Fortran

import numpy as np  
x=np.arange(12)  
y=np.reshape(np.ravel(x, order='F'), (4, 3), order='F')  
x  
y  

Output:

Hướng dẫn np.reshape trong python

Ví dụ 5: Giá trị không xác định được suy ra là 2

import numpy as np  
x=np.arange(12)  
y=np.reshape(x, (2, -1))  
x  
y  

Trong đoạn code trên

  • Chúng tôi đã tạo một mảng ‘a’ bằng hàm np.arrange ().
  • Chúng tôi đã khai báo biến ‘y’ và gán giá trị trả về của hàm np.reshape ().
  • Chúng ta đã chuyển mảng ‘x’ và hình dạng (giá trị không xác định) trong hàm.
  • Cuối cùng, chúng tôi đã cố gắng in giá trị của arr.

Trong đầu ra, mảng đã được biểu diễn dưới dạng hai hàng và năm cột.