Mảng phẳng trong Python

Trong hướng dẫn này, bạn sẽ học cách làm phẳng một mảng bằng chức năng làm phẳng NumPy, nghĩa là một mảng được thu gọn thành một chiều. Hàm làm phẳng NumPy cho phép bạn biến mảng nhiều chiều thành mảng một chiều. Hàm này cho phép bạn dễ dàng làm phẳng các mảng theo nhiều cách khác nhau, bao gồm cả theo cột và theo hàng

Đến cuối hướng dẫn này, bạn sẽ học được

  • Cách làm phẳng một mảng NumPy theo hàng
  • Làm thế nào để làm phẳng một cột mảng NumPy khôn ngoan

Mục lục

  • Hiểu chức năng làm phẳng NumPy
  • Làm phẳng một mảng NumPy theo hàng
  • Làm phẳng một cột mảng NumPy khôn ngoan
  • Làm phẳng danh sách danh sách Python với NumPy Flatten
  • Các câu hỏi thường gặp
  • Phần kết luận
  • Tài nguyên bổ sung

Hiểu chức năng làm phẳng NumPy

Trước khi đi sâu vào cách sử dụng chức năng làm phẳng NumPy, hãy xem cách thức hoạt động của chức năng này. So với nhiều hàm NumPy khác, hàm này tương đối đơn giản

Phương thức này nhận một tham số tùy chọn, duy nhất,

# Flatten an Array Row-Wise
import numpy as np

arr = np.array[[
    [1, 2, 3],
    [4, 5, 6]
]]

flattened = arr.flatten[]
print[flattened]

# Returns: [1 2 3 4 5 6]
0, xác định cách mà mảng được làm phẳng. Chúng ta hãy xem định nghĩa của phương thức

# Understanding the NumPy Flatten Method
import numpy as np
ndarray.flatten[order='C']

Trong đoạn mã trên, chúng ta có thể thấy rằng phương thức được áp dụng cho một mảng. Phương thức trả về một bản sao của mảng đầu vào, được làm phẳng thành một chiều

Hãy nhanh chóng xem những tùy chọn nào có sẵn cho tham số

# Flatten an Array Row-Wise
import numpy as np

arr = np.array[[
    [1, 2, 3],
    [4, 5, 6]
]]

flattened = arr.flatten[]
print[flattened]

# Returns: [1 2 3 4 5 6]
0

  • # Flatten an Array Row-Wise
    import numpy as np
    
    arr = np.array[[
        [1, 2, 3],
        [4, 5, 6]
    ]]
    
    flattened = arr.flatten[]
    print[flattened]
    
    # Returns: [1 2 3 4 5 6]
    2, đối số mặc định, làm phẳng hàng chính của mảng [kiểu C]
  • # Flatten an Array Row-Wise
    import numpy as np
    
    arr = np.array[[
        [1, 2, 3],
        [4, 5, 6]
    ]]
    
    flattened = arr.flatten[]
    print[flattened]
    
    # Returns: [1 2 3 4 5 6]
    3, làm phẳng mảng theo cột [kiểu Fortran]
  • # Flatten an Array Row-Wise
    import numpy as np
    
    arr = np.array[[
        [1, 2, 3],
        [4, 5, 6]
    ]]
    
    flattened = arr.flatten[]
    print[flattened]
    
    # Returns: [1 2 3 4 5 6]
    4, làm phẳng theo thứ tự cột lớn nếu mảng liền kề trong bộ nhớ
  • # Flatten an Array Row-Wise
    import numpy as np
    
    arr = np.array[[
        [1, 2, 3],
        [4, 5, 6]
    ]]
    
    flattened = arr.flatten[]
    print[flattened]
    
    # Returns: [1 2 3 4 5 6]
    5, làm phẳng mảng theo thứ tự các phần tử xuất hiện trong bộ nhớ

Trong phần sau, bạn sẽ tìm hiểu cách làm phẳng các mảng NumPy theo hàng bằng cách sử dụng chức năng làm phẳng NumPy

Làm phẳng một mảng NumPy theo hàng

Trong phần này, bạn sẽ học cách sử dụng phương thức làm phẳng NumPy để làm phẳng một mảng theo hàng. Điều này có nghĩa là các mục được thêm vào dựa trên các mảng mà chúng xuất hiện. Để làm phẳng các mảng theo hàng, bạn có thể sử dụng đối số mặc định của

# Flatten an Array Row-Wise
import numpy as np

arr = np.array[[
    [1, 2, 3],
    [4, 5, 6]
]]

flattened = arr.flatten[]
print[flattened]

# Returns: [1 2 3 4 5 6]
0

Hãy xem cách bạn có thể làm phẳng một mảng NumPy theo hàng

# Flatten an Array Row-Wise
import numpy as np

arr = np.array[[
    [1, 2, 3],
    [4, 5, 6]
]]

flattened = arr.flatten[]
print[flattened]

# Returns: [1 2 3 4 5 6]

Hãy chia nhỏ những gì chúng ta đã làm trong khối mã ở trên

  1. Chúng tôi đã nhập NumPy dưới dạng
    # Flatten an Array Row-Wise
    import numpy as np
    
    arr = np.array[[
        [1, 2, 3],
        [4, 5, 6]
    ]]
    
    flattened = arr.flatten[]
    print[flattened]
    
    # Returns: [1 2 3 4 5 6]
    1
  2. Sau đó, chúng tôi đã tạo một mảng hai chiều,
    # Flatten an Array Row-Wise
    import numpy as np
    
    arr = np.array[[
        [1, 2, 3],
        [4, 5, 6]
    ]]
    
    flattened = arr.flatten[]
    print[flattened]
    
    # Returns: [1 2 3 4 5 6]
    2
  3. Sau đó, chúng tôi đã tạo một mảng mới
    # Flatten an Array Row-Wise
    import numpy as np
    
    arr = np.array[[
        [1, 2, 3],
        [4, 5, 6]
    ]]
    
    flattened = arr.flatten[]
    print[flattened]
    
    # Returns: [1 2 3 4 5 6]
    3, đây là kết quả của việc áp dụng phương thức
    # Flatten an Array Row-Wise
    import numpy as np
    
    arr = np.array[[
        [1, 2, 3],
        [4, 5, 6]
    ]]
    
    flattened = arr.flatten[]
    print[flattened]
    
    # Returns: [1 2 3 4 5 6]
    4 cho mảng

Điều quan trọng cần lưu ý là phương thức này không sửa đổi mảng ban đầu mà trả về một bản sao phẳng của mảng

Làm phẳng một cột mảng NumPy khôn ngoan

Trong phần này, bạn sẽ tìm hiểu cách làm phẳng cột mảng NumPy, nghĩa là các mục được làm phẳng theo thứ tự xuất hiện của chúng. Điều này có nghĩa là mục đầu tiên của mỗi mảng được làm phẳng, sau đó là mục thứ hai, v.v.

Để làm phẳng một mảng NumPy theo cột, chúng ta có thể chuyển đối số của

# Flatten an Array Row-Wise
import numpy as np

arr = np.array[[
    [1, 2, 3],
    [4, 5, 6]
]]

flattened = arr.flatten[]
print[flattened]

# Returns: [1 2 3 4 5 6]
5 sang phương thức làm phẳng

________số 8

Trong phần sau, bạn sẽ tìm hiểu cách sử dụng NumPy để làm phẳng danh sách các danh sách trong Python bằng cách sử dụng phương thức làm phẳng NumPy

Làm phẳng danh sách danh sách Python với NumPy Flatten

Phương thức làm phẳng NumPy cũng có thể được sử dụng để làm phẳng danh sách các danh sách Python. Hạn chế lớn nhất ở đây là do mảng NumPy chỉ có thể chứa các giá trị số, điều này không thể được sử dụng cho tất cả các loại danh sách của danh sách

Hãy xem cách chúng ta có thể sử dụng phương thức làm phẳng để làm phẳng một danh sách các danh sách trong Python

# Flatten a List of Lists with NumPy flatten[]
import numpy as np

list_of_lists = [
    [1, 2, 3],
    [4, 5, 6]
]

flattened = np.array[list_of_lists].flatten[]
print[list[flattened]]

# Returns: [1, 2, 3, 4, 5, 6]

Tương tự, bạn có thể sử dụng các đối số khác nhau để sửa đổi cách các danh sách danh sách này được làm phẳng bằng NumPy

Các câu hỏi thường gặp

Tại sao tính năng làm phẳng NumPy không hoạt động?

Phương thức làm phẳng NumPy không sửa đổi một mảng, mà trả về một bản sao của mảng. Điều này có nghĩa là bạn cần gán bản sao cho một biến mới

Làm phẳng NumPy khác với NumPy ravel và định hình lại như thế nào?

Cả hai phương thức ravel[] và reshape[] đều trả về một dạng xem, nếu có thể. Trong khi đó, phương thức flatten[] trả về một bản sao

NumPy có bị làm phẳng nhanh hơn NumPy ravel không?

Phương thức NumPy ravel[] hầu như luôn nhanh hơn NumPy flatten[]. Điều này là do bằng cách tạo một bản sao, trước tiên Python sẽ cần cấp phát bộ nhớ mới

Phần kết luận

Trong hướng dẫn này, bạn đã học cách sử dụng phương thức NumPy flatten[]. Phương pháp cho phép bạn san bằng mảng nhiều chiều thành mảng một chiều. Trước tiên, bạn đã học cách xác định phương thức và tham số khả dụng là gì. Sau đó, bạn đã học cách sử dụng phương thức làm phẳng để làm phẳng một mảng theo cột và theo hàng. Cuối cùng, bạn đã học cách sử dụng phương thức để làm phẳng một danh sách các danh sách

Một mảng phẳng là gì?

Làm phẳng mảng là quá trình giảm số chiều của mảng . Nói cách khác, đó là một quá trình giảm số chiều của một mảng xuống một số thấp hơn.

Có chức năng làm phẳng trong Python không?

hàm flatten[] chúng ta có thể làm phẳng ma trận thành một chiều trong python . trật tự. 'C' có nghĩa là làm phẳng trong hàng chính. 'F' có nghĩa là làm phẳng trong cột chính. 'A' có nghĩa là làm phẳng theo thứ tự chính của cột nếu a là Fortran liền kề trong bộ nhớ, thứ tự chính của hàng nếu không.

Hàm phẳng là gì?

FLATTEN là hàm bảng lấy cột VARIANT, OBJECT hoặc ARRAY và tạo ra chế độ xem bên [i. e. một chế độ xem nội tuyến có chứa mối tương quan đề cập đến các bảng khác đứng trước nó trong mệnh đề TỪ]. FLATTEN có thể được sử dụng để chuyển đổi dữ liệu bán cấu trúc thành biểu diễn quan hệ.

Sự khác biệt giữa Ravel và làm phẳng trong NumPy là gì?

Sự khác biệt giữa Flatten[] và Ravel[] . Flatten[] tương đối chậm hơn ravel[] vì nó chiếm bộ nhớ. Ravel là một hàm cấp thư viện. Flatten là một phương thức của một đối tượng ndarray. Ravel is faster than flatten[] as it does not occupy any memory. Flatten[] is comparatively slower than ravel[] as it occupies memory. Ravel is a library-level function. Flatten is a method of an ndarray object.

Chủ Đề