Ma trận hình Python

Module numpy có hàm shape giúp ta tìm kích thước của mảng hoặc ma trận. Ngoài chức năng hình dạng này, mô-đun Python numpy còn có các chức năng định hình lại, thay đổi kích thước, hoán vị, hoán đổi, làm phẳng, ravel và bóp để thay đổi ma trận của một mảng theo kích thước yêu cầu

Python numpy Hình dạng mảng

Mô-đun numpy có một thuộc tính quan trọng được gọi là hình dạng và thuộc tính này là để lấy hoặc tìm hình dạng của nó

import numpy as np
 
arr = np.array([10, 20, 30, 40, 50, 60, 70, 80])
print(arr)
 
print(np.shape(arr))
[10 20 30 40 50 60 70 80]
(8,)

Hãy để tôi chỉ ra một ví dụ nữa về hình dạng mảng có nhiều mảng trong Python. Ở đây, chúng tôi đã sử dụng các mảng có kích thước khác nhau và sau đó tìm thấy hình dạng của chúng bằng thuộc tính này

import numpy as np
 
x = np.array([[10, 20, 30], [40, 50, 60]])
print(x)
print('x = ', np.shape(x))
print()
 
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
print(arr)
print('arr = ', np.shape(arr))
 
arr1 = np.random.randint(5, 50, size = (5, 8))
print('\n-----Two Dimensional Random----')
print(arr1)
print('arr1 = ', np.shape(arr1))
 
arr2 = np.array([[[ 7, 24, 24, 22], [24, 10, 16,  2], [ 1, 16, 7, 16]],
                 [[22, 23, 12, 39], [16, 30, 37, 15],[16, 17,  3, 19]]])
print('\n-----Three Dimensional----')
print(arr2)
print('arr2 = ', np.shape(arr2))
[[10 20 30]
 [40 50 60]]
x =  (2, 3)

[[1 2]
 [3 4]
 [5 6]
 [7 8]]
arr =  (4, 2)

-----Two Dimensional Random----
[[15 41 15 28 34 39 29 38]
 [12 39 22 37 32 15 40 17]
 [48 18 23 41 43 21 10 12]
 [33 49  9 18 31 38 24 28]
 [10 46 46 10 41 37 40 21]]
arr1 =  (5, 8)

-----Three Dimensional----
[[[ 7 24 24 22]
  [24 10 16  2]
  [ 1 16  7 16]]

 [[22 23 12 39]
  [16 30 37 15]
  [16 17  3 19]]]
arr2 =  (2, 3, 4)

Python định hình lại mảng numpy

Hàm này chấp nhận một mảng làm đối số đầu tiên và hình dạng hoặc kích thước ma trận làm đối số thứ hai

import numpy as np
 
arr = np.array([[10, 20, 30], [40, 50, 60]])
print(arr)
print('arr = ', np.shape(arr))
 
print('\n---New---')
new_arr = np.reshape(arr, (6,))
print(new_arr)
print('new_arr = ', np.shape(new_arr))

đầu ra

[[10 20 30]
 [40 50 60]]
arr =  (2, 3)

---New---
[10 20 30 40 50 60]
new_arr =  (6,)

Đây là một ví dụ khác về chức năng định hình lại. Ở đây, chúng tôi đã sử dụng mảng một chiều và định hình lại nó thành các chiều khác nhau. Để bạn tham khảo, chúng tôi đang sử dụng hàm hình dạng mảng Numpy của Python để trả về hình dạng sau khi định hình lại chúng

import numpy as np
 
arr = np.array([10, 20, 30, 40, 50, 60, 70, 80])
print(arr)
print(np.shape(arr))
 
print('\n---New ---')
new_arr = np.reshape(arr, (2,4))
print(new_arr)
print(np.shape(new_arr))
 
print('\n---New ---')
new_arr1 = np.reshape(arr, (4, 2))
print(new_arr1)
print(np.shape(new_arr1))
 
print('\n---New ---')
new_arr2 = np.reshape(arr, (8,1))
print(new_arr2)
print(np.shape(new_arr2))
[10 20 30 40 50 60 70 80]
(8,)

---New ---
[[10 20 30 40]
 [50 60 70 80]]
(2, 4)

---New ---
[[10 20]
 [30 40]
 [50 60]
 [70 80]]
(4, 2)

---New ---
[[10]
 [20]
 [30]
 [40]
 [50]
 [60]
 [70]
 [80]]
(8, 1)

Nếu bạn không biết hoặc không muốn sử dụng giá trị thứ hai, thì bạn có thể gán -1. Chức năng định hình lại tự động chọn kích thước và thay thế bằng -1

import numpy as np
 
arr = np.array([[10, 20, 30, 40, 50, 60, 70, 80]])
print(arr)
print('Array Shape = ', np.shape(arr))
 
print('\n---New ---')
new_arr = np.reshape(arr, (2,-1))
print(new_arr)
print(np.shape(new_arr))
 
print('\n---New ---')
new_arr1 = np.reshape(arr, (4, -1))
print(new_arr1)
print(np.shape(new_arr1))
[[10 20 30 40 50 60 70 80]]
Array Shape =  (1, 8)

---New ---
[[10 20 30 40]
 [50 60 70 80]]
(2, 4)

---New ---
[[10 20]
 [30 40]
 [50 60]
 [70 80]]
(4, 2)

Thay đổi kích thước mảng

Hàm thay đổi kích thước Python rất hữu ích để thay đổi kích thước mảng có nhiều mảng hiện có thành hình dạng mong muốn. Hàm này chấp nhận một mảng làm đối số đầu tiên và kích thước hình dạng mong muốn làm đối số thứ hai. Nếu bạn chỉ định hình dạng mong muốn lớn hơn hình gốc, hàm thay đổi kích thước mảng Numpy sẽ sao chép các giá trị trong mảng cơ sở để tạo một mảng lớn

[10 20 30 40 50 60 70 80]
(8,)
0

chức năng thay đổi kích thước để thay đổi đầu ra hình dạng

[10 20 30 40 50 60 70 80]
(8,)
1

Hãy cho chúng tôi xem điều gì sẽ xảy ra khi chúng tôi thay đổi kích thước mảng Python thành kích thước nhỏ hơn

[10 20 30 40 50 60 70 80]
(8,)
2Python Numpy Array resize 2

chuyển vị cục bộ

Hàm chuyển vị giúp bạn chuyển vị ma trận hoặc 2D đã cho

[10 20 30 40 50 60 70 80]
(8,)
3

Thay đổi hình dạng bằng cách sử dụng đầu ra chức năng chuyển vị

[10 20 30 40 50 60 70 80]
(8,)
4

Chuyển vị ba chiều

Hãy để tôi sử dụng chức năng chuyển đổi này để chuyển đổi 3D

[10 20 30 40 50 60 70 80]
(8,)
5

Thay đổi hình dạng bằng cách chuyển đổi đầu ra ba chiều

[10 20 30 40 50 60 70 80]
(8,)
6

hoán đổi mảng numpy

Hàm swapaxes là trao đổi hai trục đã cho của một mảng. Nó chấp nhận ba đối số – name, first_axis và second_axis. Tiếp theo, hàm hoán đổi numpy hoán đổi trục_đầu tiên và trục_thứ_hai

[10 20 30 40 50 60 70 80]
(8,)
7

đầu ra hoán đổi

[10 20 30 40 50 60 70 80]
(8,)
8

Lần này, chúng tôi sử dụng hàm hoán đổi Python này trên một mảng ngẫu nhiên ba chiều được tạo bởi hàm randint

[10 20 30 40 50 60 70 80]
(8,)
9

đầu ra chức năng hoán đổi

import numpy as np
 
x = np.array([[10, 20, 30], [40, 50, 60]])
print(x)
print('x = ', np.shape(x))
print()
 
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
print(arr)
print('arr = ', np.shape(arr))
 
arr1 = np.random.randint(5, 50, size = (5, 8))
print('\n-----Two Dimensional Random----')
print(arr1)
print('arr1 = ', np.shape(arr1))
 
arr2 = np.array([[[ 7, 24, 24, 22], [24, 10, 16,  2], [ 1, 16, 7, 16]],
                 [[22, 23, 12, 39], [16, 30, 37, 15],[16, 17,  3, 19]]])
print('\n-----Three Dimensional----')
print(arr2)
print('arr2 = ', np.shape(arr2))
0

Làm phẳng mảng numpy

Hàm flatten trong Python thu gọn mảng đã cho thành mảng một chiều. Hàm làm phẳng mảng Python Numpy này chấp nhận các tham số thứ tự để quyết định thứ tự làm phẳng các mục

order = {C, F, A, K} – Bạn có thể sử dụng một trong số chúng hoặc nó coi C vì nó là mặc định. C có nghĩa là các mặt hàng sẽ san phẳng theo thứ tự chính của hàng. F có nghĩa là kiểu Fortran hoặc thứ tự chính của cột. Nếu mảng là Fortran liền kề, A làm phẳng theo thứ tự chính của cột, nếu không, thứ tự chính của hàng. K làm phẳng theo thứ tự các phần tử xảy ra trong bộ nhớ

import numpy as np
 
x = np.array([[10, 20, 30], [40, 50, 60]])
print(x)
print('x = ', np.shape(x))
print()
 
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
print(arr)
print('arr = ', np.shape(arr))
 
arr1 = np.random.randint(5, 50, size = (5, 8))
print('\n-----Two Dimensional Random----')
print(arr1)
print('arr1 = ', np.shape(arr1))
 
arr2 = np.array([[[ 7, 24, 24, 22], [24, 10, 16,  2], [ 1, 16, 7, 16]],
                 [[22, 23, 12, 39], [16, 30, 37, 15],[16, 17,  3, 19]]])
print('\n-----Three Dimensional----')
print(arr2)
print('arr2 = ', np.shape(arr2))
1

đầu ra bằng cách sử dụng chức năng làm phẳng

import numpy as np
 
x = np.array([[10, 20, 30], [40, 50, 60]])
print(x)
print('x = ', np.shape(x))
print()
 
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
print(arr)
print('arr = ', np.shape(arr))
 
arr1 = np.random.randint(5, 50, size = (5, 8))
print('\n-----Two Dimensional Random----')
print(arr1)
print('arr1 = ', np.shape(arr1))
 
arr2 = np.array([[[ 7, 24, 24, 22], [24, 10, 16,  2], [ 1, 16, 7, 16]],
                 [[22, 23, 12, 39], [16, 30, 37, 15],[16, 17,  3, 19]]])
print('\n-----Three Dimensional----')
print(arr2)
print('arr2 = ', np.shape(arr2))
2

Lần này, chúng tôi đã tạo một mảng số nguyên ba chiều ngẫu nhiên bằng cách sử dụng hàm randint. Tiếp theo, chúng tôi đã sử dụng chức năng làm phẳng Python Numpy này để làm phẳng thành một chiều

import numpy as np
 
x = np.array([[10, 20, 30], [40, 50, 60]])
print(x)
print('x = ', np.shape(x))
print()
 
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
print(arr)
print('arr = ', np.shape(arr))
 
arr1 = np.random.randint(5, 50, size = (5, 8))
print('\n-----Two Dimensional Random----')
print(arr1)
print('arr1 = ', np.shape(arr1))
 
arr2 = np.array([[[ 7, 24, 24, 22], [24, 10, 16,  2], [ 1, 16, 7, 16]],
                 [[22, 23, 12, 39], [16, 30, 37, 15],[16, 17,  3, 19]]])
print('\n-----Three Dimensional----')
print(arr2)
print('arr2 = ', np.shape(arr2))
3

chức năng làm phẳng để làm phẳng hoặc thay đổi đầu ra hình dạng

import numpy as np
 
x = np.array([[10, 20, 30], [40, 50, 60]])
print(x)
print('x = ', np.shape(x))
print()
 
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
print(arr)
print('arr = ', np.shape(arr))
 
arr1 = np.random.randint(5, 50, size = (5, 8))
print('\n-----Two Dimensional Random----')
print(arr1)
print('arr1 = ', np.shape(arr1))
 
arr2 = np.array([[[ 7, 24, 24, 22], [24, 10, 16,  2], [ 1, 16, 7, 16]],
                 [[22, 23, 12, 39], [16, 30, 37, 15],[16, 17,  3, 19]]])
print('\n-----Three Dimensional----')
print(arr2)
print('arr2 = ', np.shape(arr2))
4

ravel mảng Numpy

Hàm ravel trong Python trả về một mảng một chiều phẳng liền kề. Cú pháp của hàm ravel Python Numpy này là

import numpy as np
 
x = np.array([[10, 20, 30], [40, 50, 60]])
print(x)
print('x = ', np.shape(x))
print()
 
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
print(arr)
print('arr = ', np.shape(arr))
 
arr1 = np.random.randint(5, 50, size = (5, 8))
print('\n-----Two Dimensional Random----')
print(arr1)
print('arr1 = ', np.shape(arr1))
 
arr2 = np.array([[[ 7, 24, 24, 22], [24, 10, 16,  2], [ 1, 16, 7, 16]],
                 [[22, 23, 12, 39], [16, 30, 37, 15],[16, 17,  3, 19]]])
print('\n-----Three Dimensional----')
print(arr2)
print('arr2 = ', np.shape(arr2))
5

Hàm ravel này chấp nhận các tham số thứ tự để quyết định thứ tự làm phẳng các mục. C có nghĩa là chỉ mục của các mục theo thứ tự chính của hàng. F có nghĩa là các mục chỉ mục theo kiểu Fortran hoặc thứ tự chính của cột. Nếu nó là Fortran liền kề, A đọc các chỉ mục theo thứ tự chính của cột, nếu không, thứ tự chính của hàng. K đọc các chỉ mục theo thứ tự các phần tử đã xảy ra trong bộ nhớ

import numpy as np
 
x = np.array([[10, 20, 30], [40, 50, 60]])
print(x)
print('x = ', np.shape(x))
print()
 
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
print(arr)
print('arr = ', np.shape(arr))
 
arr1 = np.random.randint(5, 50, size = (5, 8))
print('\n-----Two Dimensional Random----')
print(arr1)
print('arr1 = ', np.shape(arr1))
 
arr2 = np.array([[[ 7, 24, 24, 22], [24, 10, 16,  2], [ 1, 16, 7, 16]],
                 [[22, 23, 12, 39], [16, 30, 37, 15],[16, 17,  3, 19]]])
print('\n-----Three Dimensional----')
print(arr2)
print('arr2 = ', np.shape(arr2))
6

hàm ravel để định hình đầu ra mảng

import numpy as np
 
x = np.array([[10, 20, 30], [40, 50, 60]])
print(x)
print('x = ', np.shape(x))
print()
 
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
print(arr)
print('arr = ', np.shape(arr))
 
arr1 = np.random.randint(5, 50, size = (5, 8))
print('\n-----Two Dimensional Random----')
print(arr1)
print('arr1 = ', np.shape(arr1))
 
arr2 = np.array([[[ 7, 24, 24, 22], [24, 10, 16,  2], [ 1, 16, 7, 16]],
                 [[22, 23, 12, 39], [16, 30, 37, 15],[16, 17,  3, 19]]])
print('\n-----Three Dimensional----')
print(arr2)
print('arr2 = ', np.shape(arr2))
7

Trong ví dụ này, chúng tôi đã khai báo một số nguyên ba chiều của các số ngẫu nhiên bằng cách sử dụng hàm randint của Python. Tiếp theo, chúng tôi đã sử dụng hàm ravel này để làm phẳng cái ngẫu nhiên này thành một chiều liền kề

Hình dạng ma trận trong Python là gì?

Trong bài viết này, chúng ta sẽ tìm hiểu về ma trận Python sử dụng danh sách lồng nhau và gói NumPy. Ma trận là cấu trúc dữ liệu hai chiều trong đó các số được sắp xếp thành hàng và cột . Ví dụ. Ma trận này là ma trận 3x4 (phát âm là "ba nhân bốn") vì nó có 3 hàng và 4 cột.

Hình dạng () trong Python là gì?

Hàm "shape" trả về hình dạng của mảng . Hình dạng là một bộ số nguyên. Những con số này biểu thị độ dài của kích thước mảng tương ứng. Nói cách khác. "Hình dạng" của một mảng là một bộ với số phần tử trên mỗi trục (thứ nguyên).

Hình dạng ma trận là gì?

ma trận được ký hiệu bằng chữ in hoa; . the number of rows and columns. nó có . Vì vậy, nếu một ma trận A có K hàng và L cột (với K và L đều là số nguyên dương), ta nói A là một. K. l.

Việc sử dụng hình dạng () trong NumPy là gì?

Thuộc tính shape thường được sử dụng để lấy hình dạng hiện tại của một mảng, nhưng cũng có thể được sử dụng để định hình lại mảng tại chỗ bằng cách gán một bộ kích thước mảng cho nó . .