Định hình lại danh sách Python
Nó trả về một đối tượng xem mới nếu có thể, nếu không thì trả về một bản sao. Nhưng trong hầu hết các trường hợp, nó trả về một khung nhìn và do đó, nó có hiệu suất rất tốt với các mảng lớn Show
Hãy hiểu điều này với nhiều ví dụ hơn, quảng cáo Đầu tiên, nhập mô-đun numpy, import numpy as np Chuyển đổi hình dạng của mảng Numpy bằng cách sử dụng numpy. định hình lại()sử dụng numpy. reshape() để chuyển đổi mảng numpy 1D thành mảng 2D NumpyTrước tiên hãy tạo một mảng numpy 1D từ một danh sách, # Create a 1D Numpy array of size 9 from a list arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) Bây giờ, giả sử chúng ta muốn chuyển đổi mảng 1D này thành mảng 2D hoặc ma trận có dạng (3X3) i. e. 3 hàng và 3 cột. Hãy xem cách thực hiện điều đó bằng cách sử dụng reshape(), # Convert a 1D Numpy array to a 2D Numpy array arr2D = np.reshape(arr, (3,3)) print('2D Numpy array') print(arr2D) Đầu ra. ______3 Chúng tôi đã chuyển mảng và một bộ (hình dạng) làm đối số cho numpy. reshape() và nó trả về chế độ xem 2D mới của mảng đã truyền. Hình dạng mới phải tương thích với hình dạng ban đầuHình dạng mới được cung cấp trong hàm reshape() phải tương thích với hình dạng của mảng được truyền vào.
Hãy kiểm tra một ví dụ hoặc chuyển đổi không tương thích arr2D = np.reshape(arr, (3, 2)) Lỗi, ValueError: cannot reshape array of size 9 into shape (3,2) Chúng tôi đã cố gắng tạo một ma trận/mảng 2D có hình dạng (3, . e. 6 phần tử nhưng mảng numpy 1D của chúng tôi chỉ có 9 phần tử nên nó báo lỗi, sử dụng numpy. reshape() để chuyển đổi mảng numpy 1D thành mảng 3D NumpyĐể chuyển đổi mảng 1D Numpy thành mảng 3D Numpy, chúng ta cần chuyển hình dạng của mảng 3D dưới dạng một bộ cùng với mảng cho hàm reshape() làm đối số Chúng tôi có một mảng Numpy 1D với 12 mục, # Create a 1D Numpy array of size 9 from a list arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) Bây giờ, hãy chuyển đổi mảng 1D này thành mảng 3D có hình khối (2X3X2), # Convert a 1D Numpy array to a 3D Numpy array of shape 2X3X2 arr3D = np.reshape(arr, (2, 3, 2)) print(arr3D) Output: [[[ 1 2] [ 3 4] [ 5 6]] [[ 7 8] [ 9 10] [11 12]]] Cho đến bây giờ chúng ta đã thấy các ví dụ chuyển đổi mảng 1D thành 2D hoặc 3D. Nhưng sử dụng hàm reshape() chúng ta có thể chuyển đổi một mảng có hình dạng bất kỳ thành bất kỳ hình dạng nào khác. Như, sử dụng numpy. reshape() để chuyển đổi mảng 3D numpy thành mảng 2D NumpyGiả sử chúng ta có một mảng hình dạng 3D Numpy (2X3X2), import numpy as np0 Hãy chuyển đổi mảng 3D này thành mảng 2D có hình dạng 2X6 bằng cách sử dụng hàm reshape(), import numpy as np1 Output: import numpy as np2 sử dụng numpy. reshape() để chuyển đổi mảng numpy 2D thành mảng 1D NumpyGiả sử chúng ta có một mảng hình dạng Numpy 2D (3X3), import numpy as np3 Hãy chuyển đổi mảng 2D này thành mảng 1D, import numpy as np4 Đầu ra. import numpy as np5 Nếu chúng ta chuyển -1 làm đối số hình dạng cho hàm reshape() thì nó sẽ chuyển mảng có hình dạng bất kỳ thành mảng phẳng. cục mịch. reshape() trả về một đối tượng xem mới nếu có thểBất cứ khi nào có thể. định hình lại () trả về chế độ xem của đối tượng đã truyền. Nếu chúng ta sửa đổi bất kỳ dữ liệu nào trong đối tượng xem thì dữ liệu đó sẽ được phản ánh trong đối tượng chính và ngược lại. Hãy hiểu điều này với một ví dụ, Giả sử chúng ta có một mảng numpy 1D, import numpy as np6 hãy tạo đối tượng chế độ xem 2D của mảng Numpy 1D bằng cách sử dụng reshape(), import numpy as np7 . import numpy as np8 Bây giờ sửa đổi phần tử thứ hai trong mảng 1D numpy ban đầu. ______09 Mặc dù chúng tôi chỉ sửa đổi mảng 1D nhưng thay đổi này cũng sẽ hiển thị trong đối tượng chế độ xem 2D. Hãy xác nhận điều này, # Create a 1D Numpy array of size 9 from a list arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])0 Đầu ra. # Create a 1D Numpy array of size 9 from a list arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])1 Điều này chứng tỏ rằng trong ví dụ trên reshape() đã trả về một đối tượng xem. Nhưng có thể có các tình huống khi reshape() không thể trả về một đối tượng xem. Nhưng làm cách nào để xác định xem giá trị được trả về có phải là chế độ xem hay không? Làm cách nào để kiểm tra xem reshape() có trả về một đối tượng xem không? Bất kể đối tượng nào reshape() trả về, chúng ta có thể kiểm tra thuộc tính cơ sở của nó để xác nhận xem nó có dạng xem hay không. Nếu thuộc tính cơ sở là Không thì nó không phải là đối tượng khung nhìn, trong khi nếu không phải là Không thì nó là đối tượng khung nhìn và thuộc tính cơ sở trỏ đến đối tượng mảng ban đầu i. e. , # Create a 1D Numpy array of size 9 from a list arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])2 Đầu ra. ______13 cục mịch. định hình lại () & loại tham số thứ tự khác nhauTrong hàm reshape(), chúng ta cũng có thể truyền tham số thứ tự và giá trị của nó có thể là 'C' o 'F' hoặc 'A'. Giá trị mặc định là 'C'. Tham số này quyết định thứ tự các phần tử từ mảng đầu vào sẽ được sử dụng Hãy hiểu điều này với một ví dụ, Giả sử chúng ta có một mảng 1D, # Create a 1D Numpy array of size 9 from a list arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])4 Chuyển đổi hàng mảng 1D thành 2D theo thứ tự 'C' Khi chúng ta chuyển tham số thứ tự là 'C' (giá trị mặc định của tham số thứ tự), thì các mục từ mảng đầu vào sẽ được đọc theo hàng i. e # Create a 1D Numpy array of size 9 from a list arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])5 Đầu ra. ______3 Các mục từ mảng 1D được đọc theo hàng i. e.
Chuyển đổi cột mảng 1D sang 2D theo thứ tự 'F' Khi chúng ta chuyển tham số thứ tự là 'F', thì các mục từ mảng đầu vào sẽ được đọc theo cột i. e # Create a 1D Numpy array of size 9 from a list arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])7 Đầu ra. ______18 Các mục từ mảng 1D được đọc theo cột i. e.
Chuyển đổi mảng 1D thành 2D theo cách bố trí bộ nhớ với thứ tự tham số “A” Cả hai tùy chọn 'C' và 'F' đều không xem xét bố cục bộ nhớ của mảng đầu vào. Trong khi đó, khi chúng ta chuyển tham số thứ tự là 'A', thì các mục từ mảng đầu vào sẽ được đọc dựa trên bố cục bộ nhớ trong. Hãy hiểu bằng một ví dụ, Tạo một mảng numpy 1D import numpy as np6 Tạo đối tượng chế độ xem 2D từ mảng có nhiều mảng 1D này và sau đó nhận đối tượng chế độ xem chuyển vị của mảng 2D đó, # Convert a 1D Numpy array to a 2D Numpy array arr2D = np.reshape(arr, (3,3)) print('2D Numpy array') print(arr2D)0 Output: # Create a 1D Numpy array of size 9 from a list arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])8 Bây giờ, hãy chuyển đổi đối tượng chế độ xem được chuyển đổi này thành một mảng có nhiều mảng 1D theo thứ tự 'C' i. e. hàng khôn ngoan dựa trên hình dạng hiện tại. ______22 Đầu ra. # Convert a 1D Numpy array to a 2D Numpy array arr2D = np.reshape(arr, (3,3)) print('2D Numpy array') print(arr2D)3 Nó đọc hàng phần tử một cách khôn ngoan từ hình dạng hiện tại của đối tượng xem và bố cục bộ nhớ của mảng ban đầu không được xem xét. Bây giờ, hãy chuyển đổi đối tượng chế độ xem được chuyển đổi này thành một mảng có nhiều mảng 1D bằng cách sử dụng thứ tự 'A' i. e. dựa trên bố cục bộ nhớ của mảng ban đầu, # Convert a 1D Numpy array to a 2D Numpy array arr2D = np.reshape(arr, (3,3)) print('2D Numpy array') print(arr2D)4 Đầu ra. # Convert a 1D Numpy array to a 2D Numpy array arr2D = np.reshape(arr, (3,3)) print('2D Numpy array') print(arr2D)5 Nó đọc hàng phần tử một cách khôn ngoan từ hàng dựa trên bố cục bộ nhớ của mảng 1D ban đầu. Nó không xem xét chế độ xem hiện tại của mảng đầu vào i. e. một đối tượng xem. Chuyển đổi hình dạng của danh sách bằng cách sử dụng numpy. định hình lại() Trong hàm reshape(), chúng ta cũng có thể chuyển một danh sách thay vì mảng. Ví dụ: hãy sử dụng hàm reshape() để chuyển đổi danh sách thành mảng 2D có nhiều mảng, # Convert a 1D Numpy array to a 2D Numpy array arr2D = np.reshape(arr, (3,3)) print('2D Numpy array') print(arr2D)6 Đầu ra. ______27 Bây giờ, hãy chuyển mảng 2D numpy này thành danh sách của danh sách, # Convert a 1D Numpy array to a 2D Numpy array arr2D = np.reshape(arr, (3,3)) print('2D Numpy array') print(arr2D)8 Output: ______29 Ví dụ đầy đủ như sau, [[1 2 3] [4 5 6] [7 8 9]]0 Đầu ra [[1 2 3] [4 5 6] [7 8 9]]1 Hướng dẫn về Pandas -Tìm hiểu Phân tích dữ liệu với Python
Bạn đang muốn tạo dựng sự nghiệp trong Khoa học dữ liệu với Python?Khoa học dữ liệu là tương lai và tương lai là ở đây ngay bây giờ. Các nhà khoa học dữ liệu hiện là những chuyên gia được tìm kiếm nhiều nhất hiện nay. Để trở thành một Nhà khoa học dữ liệu giỏi hoặc để chuyển đổi nghề nghiệp trong Khoa học dữ liệu, người ta phải sở hữu bộ kỹ năng phù hợp. Chúng tôi đã tuyển chọn danh sách Chứng chỉ chuyên nghiệp tốt nhất về Khoa học dữ liệu với Python. Các khóa học này sẽ dạy cho bạn các công cụ lập trình cho Khoa học dữ liệu như Pandas, NumPy, Matplotlib, Seaborn và cách sử dụng các thư viện này để triển khai các mô hình Máy học Kiểm tra Đánh giá chi tiết về Chứng chỉ chuyên nghiệp tốt nhất về Khoa học dữ liệu với PythonHãy nhớ rằng, Khoa học dữ liệu đòi hỏi rất nhiều kiên nhẫn, bền bỉ và thực hành. Vì vậy, hãy bắt đầu học ngay hôm nay Định hình lại trong Python là gì?Định hình lại có nghĩa là thay đổi hình dạng của một mảng . Hình dạng của một mảng là số phần tử trong mỗi chiều. Bằng cách định hình lại, chúng tôi có thể thêm hoặc xóa kích thước hoặc thay đổi số lượng phần tử trong mỗi kích thước.
Đâu là sự khác biệt giữa reshape() và resize() ?reshape() và numpy. phương thức resize() được sử dụng để thay đổi kích thước của mảng NumPy. Sự khác biệt giữa chúng là phương thức reshape() không thay đổi mảng ban đầu mà chỉ trả về mảng đã thay đổi, trong khi phương thức resize() không trả về gì cả và thay đổi trực tiếp mảng ban đầu.
Định hình lại NumPy có nghĩa là gì?numpy. reshape(a, newshape, order='C')[source] Tạo hình mới cho mảng mà không thay đổi dữ liệu của mảng .
Đâu là sự khác biệt giữa shapevà reshape?Công cụ hình dạng cung cấp một bộ kích thước mảng và có thể được sử dụng để thay đổi kích thước của mảng. Công cụ định hình lại cung cấp hình dạng mới cho mảng mà không thay đổi dữ liệu của mảng . Nó tạo ra một mảng mới và không sửa đổi mảng ban đầu. |