Hướng dẫn dùng broadcasting numpy python - use numpy python broadcast

Nội Dung

  • 1. Broadcasting trong Numpy là gì?
  • 2. Broadcasting mảng Numpy cùng kích thước
  • 3. Broadcasting mảng Numpy không cùng kích thước

Thuật ngữ Broadcasting trong Numpy mô tả cách xử lý các mảng trong Numpy có kích thước khác nhau thông qua các phép tính toán học. Theo một số ràng buộc nhất định, mảng nhỏ hơn được sẽ được “Broadcasting ” trên mảng lớn hơn để chúng có hình dạng tương thích với nhau.Broadcasting trong Numpy mô tả cách xử lý các mảng trong Numpy có kích thước khác nhau thông qua các phép tính toán học. Theo một số ràng buộc nhất định, mảng nhỏ hơn được sẽ được “Broadcasting ” trên mảng lớn hơn để chúng có hình dạng tương thích với nhau.

Broadcasting còn cung cấp sẵn một phương tiện vectơ hóa các hoạt động của mảng để lặp lại xảy ra trong C thay vì Python. Nó thực hiện điều này mà không cần tạo bản sao dữ liệu không cần thiết và thường dẫn đến việc triển khai thuật toán hiệu quả. còn cung cấp sẵn một phương tiện vectơ hóa các hoạt động của mảng để lặp lại xảy ra trong C thay vì Python. Nó thực hiện điều này mà không cần tạo bản sao dữ liệu không cần thiết và thường dẫn đến việc triển khai thuật toán hiệu quả.

Các quy tắc Broadcasting trong Numpy:

  • Nếu 2 mảng khác kích thước, mảng có ndim nhỏ hơn mảng kia được thêm ‘1’ vào [bên trái] shape của mảng đó.
  • Nếu shape của 2 mảng không tương ứng ở bất cứ chiều nào, mảng có shape bằng 1 tại chiều nào thì chiều đó sẽ giãn ra để tương ứng với shape kia.
  • Nếu trong bất kỳ kích thước nào mà kích thước không bằng nhau và không bằng 1, thì sẽ báo lỗi.

2. Broadcasting mảng Numpy cùng kích thước

3. Broadcasting mảng Numpy không cùng kích thước

import numpy as np 

# Tao mang a,b co cung kich thuoc
a = np.array[[1.0, 2.0, 3.0]]
b = np.array[[2.0, 2.0, 2.0]]

# Thuc hien phep nhan giua mang a va mang b
result = a * b
print[result]

Thuật ngữ Broadcasting trong Numpy mô tả cách xử lý các mảng trong Numpy có kích thước khác nhau thông qua các phép tính toán học. Theo một số ràng buộc nhất định, mảng nhỏ hơn được sẽ được “Broadcasting ” trên mảng lớn hơn để chúng có hình dạng tương thích với nhau.

[2. 4. 6.]

Broadcasting còn cung cấp sẵn một phương tiện vectơ hóa các hoạt động của mảng để lặp lại xảy ra trong C thay vì Python. Nó thực hiện điều này mà không cần tạo bản sao dữ liệu không cần thiết và thường dẫn đến việc triển khai thuật toán hiệu quả.a và ma trận b. Hình ảnh dưới đây minh họa việc nhân hai ma trận 1 chiều có cùng kích thước:

Các quy tắc Broadcasting trong Numpy:

import numpy as np 

# Tao mang a
a = np.array[[1.0, 2.0, 3.0]]
# Khai bao bien b = 2
b = 2

# Thuc hien phep nhan mang a * 2
result = a * b
print[result]

Thuật ngữ Broadcasting trong Numpy mô tả cách xử lý các mảng trong Numpy có kích thước khác nhau thông qua các phép tính toán học. Theo một số ràng buộc nhất định, mảng nhỏ hơn được sẽ được “Broadcasting ” trên mảng lớn hơn để chúng có hình dạng tương thích với nhau.

[2. 4. 6.]

Broadcasting còn cung cấp sẵn một phương tiện vectơ hóa các hoạt động của mảng để lặp lại xảy ra trong C thay vì Python. Nó thực hiện điều này mà không cần tạo bản sao dữ liệu không cần thiết và thường dẫn đến việc triển khai thuật toán hiệu quả.

Các quy tắc Broadcasting trong Numpy:

import numpy as np 

# Tao mang a, b cung kich thuoc
a = np.array[[
    [1.0, 2.0],
    [2.0, 3.0]
]]

b = np.array[[
    [2.0, 2.0],
    [2.0, 2.0]
]]

# Thuc hien phep nhan giua mang a va mang b
result = a * b
print[result]

Thuật ngữ Broadcasting trong Numpy mô tả cách xử lý các mảng trong Numpy có kích thước khác nhau thông qua các phép tính toán học. Theo một số ràng buộc nhất định, mảng nhỏ hơn được sẽ được “Broadcasting ” trên mảng lớn hơn để chúng có hình dạng tương thích với nhau.

[[2. 4.]
 [4. 6.]]

Broadcasting còn cung cấp sẵn một phương tiện vectơ hóa các hoạt động của mảng để lặp lại xảy ra trong C thay vì Python. Nó thực hiện điều này mà không cần tạo bản sao dữ liệu không cần thiết và thường dẫn đến việc triển khai thuật toán hiệu quả.

import numpy as np 

# Tao mang a
a = np.array[[
    [1.0, 2.0],
    [2.0, 3.0]
]]

# Khai bao bien b = 2
b = 2

# Thuc hien phep nhan giua mang a va mang b
result = a * b
print[result]

Thuật ngữ Broadcasting trong Numpy mô tả cách xử lý các mảng trong Numpy có kích thước khác nhau thông qua các phép tính toán học. Theo một số ràng buộc nhất định, mảng nhỏ hơn được sẽ được “Broadcasting ” trên mảng lớn hơn để chúng có hình dạng tương thích với nhau.

[[2. 4.]
 [4. 6.]]

3. Broadcasting mảng Numpy không cùng kích thước

Thuật ngữ Broadcasting trong Numpy mô tả cách xử lý các mảng trong Numpy có kích thước khác nhau thông qua các phép tính toán học. Theo một số ràng buộc nhất định, mảng nhỏ hơn được sẽ được “Broadcasting ” trên mảng lớn hơn để chúng có hình dạng tương thích với nhau.

Broadcasting còn cung cấp sẵn một phương tiện vectơ hóa các hoạt động của mảng để lặp lại xảy ra trong C thay vì Python. Nó thực hiện điều này mà không cần tạo bản sao dữ liệu không cần thiết và thường dẫn đến việc triển khai thuật toán hiệu quả.2 x 3 mảng này thực hiện phép toán cộng với mảng 1 chiều [vectơ] có kích thước 1 x 3 như sau:

import numpy as np 

# Tao mang 2 chieu 2 x 3 
a = np.array[[
    [0, 0, 0],
    [10, 10, 10]
]]

# Khai bao mang 1 chieu kich thuoc 3
b = np.array[[1, 2, 3]]


# Thuc hien phep cong giua mang a va mang b
result = a + b
print[result]

Thuật ngữ Broadcasting trong Numpy mô tả cách xử lý các mảng trong Numpy có kích thước khác nhau thông qua các phép tính toán học. Theo một số ràng buộc nhất định, mảng nhỏ hơn được sẽ được “Broadcasting ” trên mảng lớn hơn để chúng có hình dạng tương thích với nhau.

[[ 1  2  3]
 [11 12 13]]

Broadcasting còn cung cấp sẵn một phương tiện vectơ hóa các hoạt động của mảng để lặp lại xảy ra trong C thay vì Python. Nó thực hiện điều này mà không cần tạo bản sao dữ liệu không cần thiết và thường dẫn đến việc triển khai thuật toán hiệu quả.shape thế nhưng khi thực hiện phép toán vẫn cho ra được kết quả là một ma trận có kích thước 2 x 3. Lý do là vì: Mảng a là mảng 2 chiều có kích thước 2 x 3, mảng b là mảng 1 chiều có kích thước 1 x 3 Numpy sẽ dựa theo các quy tắc để chuyển đổi shape của mảng như sau:

  • Các quy tắc Broadcasting trong Numpy:, sẽ thêm “1” vào phía bên trái shape của mảng – khi đó mảng b sẽ có kích thước mới là 2 x 3 và hoàn toàn có thể thực hiện phép toán cộng với mảng a giống như 2 mảng có cùng kích thước
  • Nếu 2 mảng khác kích thước, mảng có ndim nhỏ hơn mảng kia được thêm ‘1’ vào [bên trái] shape của mảng đó., chiều có giá trị = 1 sẽ giãn ra để tương ứng với shape còn lại và khi đó mảng b từ kích thước 1 x 3 sẽ được giãn ra thành kích thước 2 x 3 để tương ứng với mảng a và thực hiện phép toán cộng.
  • Nếu shape của 2 mảng không tương ứng ở bất cứ chiều nào, mảng có shape bằng 1 tại chiều nào thì chiều đó sẽ giãn ra để tương ứng với shape kia.2 x 3 là do mảng nhỏ hơn được sẽ được “Broadcasting ” trên mảng lớn hơn để chúng có hình dạng tương thích với nhau.

Nếu trong bất kỳ kích thước nào mà kích thước không bằng nhau và không bằng 1, thì sẽ báo lỗi.2 x 3 với mảng 1 chiều [vectơ] có kích thước 1 x 3 và cho ra kết quả là 1 mảng có kích thước 2 x 3

Các phép toán cơ bản trong NumPy thường được thực hiện trên các cặp phần tử với nhau. Trong trường hợp đơn giản nhất, hai mảng phải có hình dạng hoàn toàn giống nhau, như trong ví dụ sau thực hiện nhân hai mảng 1 chiều với nhau.shape. Mảng a sẽ là mảng 2 chiều có kích thước x 3 và mảng b sẽ là mảng 1 chiều có kích thước x 3 – khi đó a * b sẽ được thực hiện như sau:

[2. 4. 6.]
0

Thuật ngữ Broadcasting trong Numpy mô tả cách xử lý các mảng trong Numpy có kích thước khác nhau thông qua các phép tính toán học. Theo một số ràng buộc nhất định, mảng nhỏ hơn được sẽ được “Broadcasting ” trên mảng lớn hơn để chúng có hình dạng tương thích với nhau.

[2. 4. 6.]
1

Bài Viết Liên Quan

Chủ Đề