Cách làm phẳng một mảng 3D trong Python

Hãy thảo luận về cách làm phẳng Ma trận bằng NumPy trong Python. Bằng cách sử dụng ndarray. flatten() chúng ta có thể làm phẳng ma trận thành một chiều trong python

cú pháp. numpy_array. làm phẳng (thứ tự = 'C')

  • gọi món. 'C' có nghĩa là làm phẳng theo 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. 'K' có nghĩa là làm phẳng a theo thứ tự các phần tử xuất hiện trong bộ nhớ. Mặc định là 'C'

Trở lại. Ma trận 1-D phẳng

Cách làm phẳng một mảng 3D trong Python

ví dụ 1

trăn3




# importing numpy as np

import numpy as np

 

# declare matrix with np

gfg25_______

array([ 6,  9,  8,  5, 18, 21])
0# importing numpy as np4
array([ 6,  9,  8,  5, 18, 21])
2# importing numpy as np6
array([ 6,  9,  8,  5, 18, 21])
2 1
array([ 6,  9,  8,  5, 18, 21])
4# importing numpy as np8
array([ 6,  9,  8,  5, 18, 21])
2
array([ 6,  9,  8,  5, 18, 21])
7
array([ 6,  9,  8,  5, 18, 21])
2
array([ 6,  9,  8,  5, 18, 21])
1
array([ 6,  9,  8,  5, 18, 21])
4import2
array([ 6,  9,  8,  5, 18, 21])
2_______20_______4_______0_______2_______23_______8

Nếu một. ndim < n, 'A' được nâng cấp thành n-chiều bằng cách thêm vào các trục mới. Vì vậy, một mảng hình dạng (5,) được thăng cấp thành (1, 5) để sao chép 2 chiều hoặc hình dạng (1, 1, 5) để sao chép 3 chiều. Nếu đây không phải là hành vi mong muốn, hãy thăng hạng 'A' thành thứ nguyên theo cách thủ công trước khi gọi chức năng này

Một thuộc tính quan trọng của mảng NumPy là hình dạng của chúng. Hình dạng của một mảng có thể được xác định bằng cách sử dụng thuộc tính numpy reshape và numpy flatten. Nhưng nếu bạn muốn thay đổi hình dạng của một mảng thì sao? . định hình lại() và numpy. Các hàm flatten() được sử dụng để thay đổi hình dạng của một mảng. Trong hướng dẫn này, chúng ta sẽ thảo luận cách triển khai chúng trong mã của bạn.  

Sử dụng phương thức reshape()

Phương thức định hình lại được sử dụng để chuyển đổi một mảng từ hình dạng này sang hình dạng khác. Chẳng hạn, một mảng hình dạng (1, 9) có thể được định hình lại thành một mảng hình dạng (3, 3). Dưới đây là cú pháp của phương thức reshape()

np.reshape(a, newshape)

Thông số

a. Đây là mảng bạn muốn được định hình lại.  

hình mới. Đây là hình dạng mới của mảng được trả về.  

Cách làm phẳng một mảng 3D trong Python
Cách làm phẳng một mảng 3D trong Python

Hãy xem một ví dụ

import numpy as np
 
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
 
#reshaping the array. 
print(np.reshape(a, (3, 3)))

Trong ví dụ trên, mảng 1 chiều có độ dài 9 đã được chuyển thành mảng 2 chiều có dạng 3 x 3. Hãy xem kết quả cho đoạn mã trên.  

Output:
[[1 2 3] 
 [4 5 6] 
 [7 8 9]]

Như đã thấy, hình dạng đã được thay đổi.  

Tuy nhiên, có một điều cần lưu ý về phương pháp định hình lại. Hình dạng mới phải có khả năng chứa tất cả các phần tử của hình dạng cũ. Ví dụ mảng ở ví dụ trước có 9 phần tử. Mảng 3 nhân 3 có thể chứa 9 phần tử nên tương thích. Cố gắng định hình lại mảng đó thành (2, 4), chỉ có thể chứa 8 phần tử chứ không phải 9, trả về lỗi.  

Xem ví dụ bên dưới

import numpy as np
 
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
 
#reshaping the array. 
print(np.reshape(a, (2, 4)))
Output:
Traceback (most recent call last):
  File "c:/Users/DELL/Desktop/pycodes/__pycache__/strings.py", line 6, in    
    print(np.reshape(a, (2, 4)))
  File "<__array_function__ internals>", line 5, in reshape
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python38-32\lib\site-packages\numpy\core\fromnumeric.py", line 299, in reshape
    return _wrapfunc(a, 'reshape', newshape, order=order)
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python38-32\lib\site-packages\numpy\core\fromnumeric.py", line 58, in _wrapfunc
    return bound(*args, **kwds)
ValueError: cannot reshape array of size 9 into shape (2,4)

Phương thức reshape() đặc biệt hữu ích khi xây dựng mạng nơ-ron tích chập vì hầu hết các lần, bạn sẽ cần định hình lại hình dạng hình ảnh từ mảng 2 chiều thành mảng 3 chiều

Sử dụng numpy. phương pháp làm phẳng ().  

Đúng như tên gọi, phương thức flatten() trong Numpy được sử dụng để chuyển đổi một mảng thành mảng 1 chiều. Vì vậy, về cơ bản nó làm phẳng mảng bất kể hình dạng của nó. Sử dụng phương thức flatten() không có tham số bắt buộc. Xem một ví dụ dưới đây.  

import numpy as np
 
a = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
 
print(a)
 
#flatten the array
print('flattening a...')
print(a.flatten())
Output:
[[1 2 3]
 [4 5 6]
 [7 8 9]]
flattening a...
[1 2 3 4 5 6 7 8 9]

Nếu bạn có bất kỳ câu hỏi nào, vui lòng để lại trong phần bình luận và tôi sẽ cố gắng hết sức để trả lời chúng

Sự khác biệt giữa định hình lại () và làm phẳng () trong Python là gì?

Sử dụng flatten() khi bạn muốn tạo mảng 1-D trong đó việc thực hiện các thay đổi sẽ không ảnh hưởng đến mảng ban đầu của bạn. Sử dụng reshape() khi bạn cần tạo các hình dạng khác nhau của một mảng và việc thay đổi bất kỳ hình dạng nào trong số đó sẽ ảnh hưởng đến các mảng khác. ravel() có thể được sử dụng giống như reshape(), nhưng nó chỉ có thể tạo mảng 1-D

Làm cách nào để định hình lại mảng NumPy?

Để định hình lại một mảng có nhiều mảng, chúng ta sử dụng phương thức định hình lại với mảng đã cho. .
cú pháp. mảng. định hình lại (hình dạng)
Tranh luận. Nó lấy tuple làm đối số, tuple là hình dạng mới được hình thành
Trở lại. Nó trả về numpy. ndarray