Rate this post

Trong Python, đối với một số trường hợp, chúng ta cần mảng một chiều hơn là mảng 2-D hoặc đa chiều. Với mục đích này, mô-đun numpy cung cấp một hàm được gọi là numpy.ndarray.flatten (), trả về bản sao của mảng trong một chiều chứ không phải trong mảng 2-D hoặc nhiều chiều.

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

Giới thiệu numpy.ndarray.flatten() trong Python

numpy.ndarray.flatten() là một phương thức trong thư viện NumPy của Python, được sử dụng để chuyển đổi một mảng đa chiều thành một mảng một chiều. Khi gọi phương thức này trên một mảng đa chiều, nó trả về một bản sao của mảng ban đầu với tất cả các phần tử được sắp xếp theo thứ tự theo chiều dọc.

Xem thêm Tạo đánh giá 5 sao cho website

Cú pháp của numpy.ndarray.flatten() như sau:

numpy.ndarray.flatten(order='C')

Trong đó:

  • order (tuỳ chọn): Xác định thứ tự các phần tử trong mảng một chiều trả về. Giá trị mặc định là ‘C’, cho phép phần tử được xếp theo thứ tự của các hàng theo kiểu C (theo chiều ngang). Giá trị ‘F’ sẽ xếp phần tử theo thứ tự của các cột theo kiểu Fortran (theo chiều dọc).

Ví dụ:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
flattened_arr = arr.flatten()

print(flattened_arr)

Kết quả:

[1 2 3 4 5 6]

Phương thức numpy.ndarray.flatten() rất hữu ích khi cần làm phẳng một mảng đa chiều thành mảng một chiều để dễ dàng thao tác và xử lý dữ liệu.

Tham số numpy.ndarray.flatten()

order: {‘C’, ‘F’, ‘A’, ‘K’} (tùy chọn)

Nếu chúng ta đặt tham số thứ tự thành ‘C’, điều đó có nghĩa là mảng sẽ được làm phẳng theo thứ tự chính của hàng. Nếu ‘F’ được đặt, mảng sẽ được làm phẳng theo thứ tự cột-chính. Mảng được làm phẳng theo thứ tự cột-chính chỉ khi ‘a’ là Fortran liền kề trong bộ nhớ và khi chúng tôi đặt tham số thứ tự thành ‘A’. Thứ tự cuối cùng là ‘K’, làm phẳng mảng theo cùng thứ tự mà các phần tử xuất hiện trong bộ nhớ. Theo mặc định, tham số này được đặt thành ‘C’.

Xem thêm Đồ thị phẳng – Planar Graph

Returns của numpy.ndarray.flatten()

y: ndarray

Hàm này trả về một bản sao của mảng nguồn, được làm phẳng thành một chiều.

Xem thêm Replication Methods trong MongoDB

Ưu điểm và hạn chế của numpy.ndarray.flatten()

Ưu điểm của numpy.ndarray.flatten():

  1. Dễ sử dụng: numpy.ndarray.flatten() là một phương thức đơn giản và dễ hiểu. Bạn chỉ cần gọi phương thức này trên một mảng đa chiều và nó sẽ trả về một mảng một chiều.
  2. Duy trì dữ liệu: Khi làm phẳng mảng, numpy.ndarray.flatten() tạo ra một bản sao của mảng ban đầu mà không ảnh hưởng đến dữ liệu gốc. Điều này giúp đảm bảo an toàn và bảo vệ dữ liệu ban đầu.
  3. Tùy chọn thứ tự: Phương thức này cho phép bạn chỉ định thứ tự của các phần tử trong mảng một chiều trả về. Bạn có thể chọn thứ tự theo kiểu C (theo chiều ngang) hoặc kiểu Fortran (theo chiều dọc), tùy thuộc vào nhu cầu của bạn.

Xem thêm Tensor 2 chiều

Hạn chế của numpy.ndarray.flatten():

  1. Tạo bản sao: Khi gọi numpy.ndarray.flatten(), nó sẽ tạo ra một bản sao của mảng ban đầu, dẫn đến việc sử dụng bộ nhớ bổ sung. Điều này có thể ảnh hưởng đến hiệu suất và hiệu năng của chương trình, đặc biệt là khi xử lý các mảng có kích thước lớn.
  2. Mất cấu trúc đa chiều: Khi làm phẳng mảng, thông tin về cấu trúc đa chiều của dữ liệu sẽ bị mất. Điều này có thể làm mất một số thông tin quan trọng trong quá trình xử lý dữ liệu hoặc tính toán.
  3. Không thay đổi mảng gốc: Phương thức numpy.ndarray.flatten() không thay đổi mảng ban đầu mà chỉ tạo ra một bản sao mới. Điều này có thể làm mất sự tiện lợi nếu bạn muốn thực hiện thay đổi trực tiếp trên mảng gốc mà không cần tạo bản sao.

Xem thêm Machine learning: Thuật toán SVM

Ví dụ numpy.ndarray.flatten()

Ví dụ 1:

import numpy as np  
a = np.array([[1,4,7], [2,5,8],[3,6,9]])  
b=a.flatten()  
b  

Đầu ra:

Trong đoạn code trên

  • Chúng tôi đã tạo một mảng đa chiều ‘a’ bằng cách sử dụng hàm array ().
  • Chúng ta đã khai báo biến ‘b’ và gán giá trị trả về của hàm flatten ().
  • Cuối cùng, chúng tôi đã cố gắng in giá trị của ‘b’.
  • Trong đầu ra, nó hiển thị một ndarray, chứa các phần tử của mảng đa chiều thành 1-D.

Ví dụ 2:

import numpy as np  
a = np.array([[1,4,7], [2,5,8],[3,6,9]])  
b=a.flatten('C')  
b  

Output:

Trong đoạn code trên

  • Chúng tôi đã tạo một mảng đa chiều ‘a’ bằng cách sử dụng hàm array ().
  • Chúng ta đã khai báo biến ‘b’ và gán giá trị trả về của hàm flatten ().
  • Chúng tôi đã sử dụng thứ tự ‘C’ trong hàm.
  • Cuối cùng, chúng tôi đã cố gắng in giá trị của ‘b’.
  • Trong đầu ra, nó hiển thị một ndarray, chứa các phần tử của mảng đa chiều thành 1-D.

Ví dụ 3:

import numpy as np  
a = np.array([[1,4,7], [2,5,8],[3,6,9]])  
b=a.flatten('F')  
b  

Output:

Ví dụ 4:

import numpy as np  
a = np.array([[1,4,7], [2,5,8],[3,6,9]])  
b=a.flatten('A')  
b  

Output:

Ví dụ 5:

import numpy as np  
a = np.array([[1,4,7], [2,5,8],[3,6,9]])  
b=a.flatten('K')  
b  

Output:

Xem thêm Cách cài đặt NumPy trên Python

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now