Mảng Python chia cho số

Trong hướng dẫn này, tôi sẽ giải thích cách sử dụng hàm phân chia Numpy – AKA np. chia - để chia các giá trị của một mảng Numpy cho một mảng khác

Tôi sẽ giải thích cú pháp của np. chia, cách chức năng hoạt động và cách sử dụng nó

Nếu bạn cần một cái gì đó cụ thể, bạn có thể nhấp vào bất kỳ liên kết nào sau đây

Mục lục

  • Giới thiệu về phân chia Numpy
  • Cú pháp của np. chia
  • ví dụ. cách sử dụng phân chia Numpy

Vâng. Chúng ta hãy đi đến đó

Giới thiệu nhanh về phân chia Numpy

Hàm chia Numpy – như bạn có thể đoán – chia các mảng Numpy

Cách quan trọng nhất để sử dụng hàm này là chia hai mảng có cùng kích thước. Khi bạn chia hai mảng có cùng kích thước, np. chia sẽ chia các giá trị của mảng, phần tử khôn ngoan. Điều này đôi khi được gọi là "phép chia Hadamard", vì nó tương tự như tích Hadamard, được thực hiện trong Numpy bởi hàm nhân Numpy

Bạn cũng có thể sử dụng hàm để chia một mảng Numpy cho một giá trị vô hướng [i. e. , chia ma trận cho một đại lượng vô hướng]

Và bạn có thể dùng nó để chia mảng Numpy cho mảng 1 chiều [hoặc mảng nhỏ hơn]. Điều này tương tự như chia ma trận cho một vectơ trong đại số tuyến tính. Cách thức này được thực hiện trong Numpy là với một kỹ thuật gọi là “phát sóng. ”

Phần lớn, kỹ thuật này khá dễ hiểu và tôi sẽ chỉ cho bạn các cách khác nhau để sử dụng nó trong phần ví dụ

Nhưng trước tiên, hãy xem cú pháp

Cú pháp của np. chia

Cú pháp của hàm chia Numpy khá đơn giản

Hãy nhớ rằng cú pháp trên giả định rằng bạn đã nhập Numpy với bí danh

# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
0

Định dạng của các mảng đầu vào

Trước khi tiếp tục, tôi muốn đưa ra một vài nhận xét về hai mảng đầu vào

Lưu ý trong phần giải thích cú pháp ở trên rằng np. hàm chia có hai đối số đầu vào. Trong hình ảnh, tôi đã đặt tên cho các đối số này là

# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
1 và
# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
1. Thông thường, các đầu vào này sẽ là các mảng Numpy hoặc các đối tượng dạng mảng như danh sách Python

Ngoài ra, có một số hạn chế về hình dạng của các mảng đầu vào. Cách chức năng hoạt động sẽ được quyết định bởi hình dạng của đầu vào

Cách đầu tiên để sử dụng np. chia là với hai mảng có cùng kích thước [i. e. , các mảng có cùng số hàng và số cột]. Nếu hai mảng đầu vào có hình dạng giống nhau, thì phép chia Numpy sẽ chia các phần tử của mảng thứ nhất cho các phần tử của mảng thứ hai, theo kiểu từng phần tử

Ngoài ra, bạn có thể cung cấp các mảng đầu vào có hình dạng khác. Nhưng trong trường hợp này, mảng thứ hai sẽ cần có kích thước phù hợp để nó có thể được truyền qua mảng đầu tiên. Tôi sẽ chỉ cho bạn một ví dụ về phát sóng trong phần ví dụ

thông số bổ sung

Ngoài hai đối số đầu vào, hàm chia Numpy có một vài tham số tùy chọn

  • ngoài
  • ở đâu

Những thứ này hơi hiếm khi được sử dụng, nhưng vì vậy tôi sẽ không giải thích chúng ở đây

Đầu ra của np. chia

Đầu ra của np. phân chia là một mảng Numpy mới chứa phân chia phần tử khôn ngoan của các giá trị mảng đầu vào. Lưu ý rằng np. chia thực hiện phân chia thực sự thay vì phân chia sàn

Ngoài ra, có một trường hợp đặc biệt cho vô hướng. Nếu cả hai đầu vào cho np. chia là các giá trị vô hướng, thì đầu ra sẽ là một giá trị vô hướng

ví dụ. cách thực hiện phép chia với mảng Numpy

Bây giờ chúng ta đã xem xét cú pháp của phép chia Numpy, hãy xem một số ví dụ

ví dụ

  • Sử dụng phân chia Numpy trên hai vô hướng
  • Sử dụng phân chia Numpy với một mảng và một vô hướng
  • Chia hai mảng Numpy có cùng kích thước
  • Chia các mảng Numpy có kích thước khác nhau bằng phát sóng [i. e. , chia ma trận cho một vectơ]

mã sơ bộ. Nhập Numpy và tạo mảng

Trước khi chạy các ví dụ này, bạn sẽ cần chạy một số mã để nhập Numpy và tạo một số mảng mẫu mà chúng tôi có thể sử dụng

Nhập Numpy

Đầu tiên, hãy nhập Numpy

Bạn có thể nhập Numpy bằng đoạn mã sau

import numpy as np

Tạo mảng

Tiếp theo, hãy tạo một số mảng mà chúng ta có thể làm việc với các ví dụ của mình

Chúng tôi thực sự sẽ tạo một vài loại mảng khác nhau

  • một 'vectơ' 1 chiều của các số
  • một 'ma trận' 2 chiều của các số từ 1 đến 9 [có thứ tự]
  • một 'ma trận' 2 chiều gồm các số từ 1 đến 9 [ngẫu nhiên]

Để làm điều này, chúng tôi sẽ sử dụng một số công cụ Numpy, như hàm mảng Numpy, hàm sắp xếp Numpy, định hình lại Numpy và lựa chọn ngẫu nhiên Numpy

Chúng ta sẽ sử dụng mảng Numpy để tạo mảng 1 chiều có 3 giá trị. Chúng ta sẽ sử dụng Numpy arange để tạo một mảng với một dãy số. Chúng tôi sẽ sử dụng định hình lại Numpy để tạo một mảng số 2D có thứ tự, được tạo từ chuỗi số 1D của chúng tôi. Và chúng tôi sẽ sử dụng lựa chọn ngẫu nhiên Numpy để tạo mảng 2D ngẫu nhiên được tạo từ chuỗi 1D của chúng tôi

Nếu bạn bối rối về bất kỳ thao tác nào trong số này, hãy nhấp vào liên kết ở trên. Các hướng dẫn liên quan sẽ giải thích mọi thứ chi tiết hơn

# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]

Sau khi chạy mã này để tạo mảng, bạn sẽ sẵn sàng chạy các ví dụ

VÍ DỤ 1. Sử dụng phân chia Numpy trên hai vô hướng

Hãy bắt đầu với một ví dụ đơn giản

Ở đây, chúng tôi sẽ sử dụng phép chia Numpy để chia một giá trị vô hướng cho một giá trị vô hướng khác

np.divide[12,4]

NGOÀI

3.0

Giải trình

Điều này rất đơn giản

Ở đây, chúng ta chỉ đơn giản là chia 12 cho 4. Kết quả là 3. 0

VÍ DỤ 2. Chia một mảng cho một vô hướng

Tiếp theo, chúng ta sẽ chia mảng Numpy 2 chiều cho một giá trị vô hướng

np.divide[matrix_2d_ordered, 2]

NGOÀI

________số 8

Giải trình

Ở đây, chúng tôi đã chia mọi giá trị của

# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
3 cho giá trị vô hướng 2

Đầu ra chỉ đơn giản là mọi giá trị của

# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
3 chia cho 2

VÍ DỤ 3. Chia hai mảng Numpy có cùng kích thước

Tiếp theo, hãy thao tác trên hai mảng có cùng kích thước

Cụ thể, chúng ta sẽ chia

# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
3 cho
# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
6

# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
3

NGOÀI

# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
4

Giải trình

Ở đây, hàm chia Numpy đang chia từng giá trị của

# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
3 cho giá trị tương ứng trong
# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
6

Một cách khác để nói điều này là nó đang thực hiện phép chia thành phần tử của các giá trị mảng [i. e. , bộ phận Hadamard]

Lưu ý rằng mảng đầu ra có cùng kích thước với mảng đầu vào

VÍ DỤ 4. Chia ma trận cho một vectơ [i. e. , phát thanh truyền hình]

Cuối cùng, hãy chia mảng 2 chiều cho mảng 1 chiều

# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
7

NGOÀI

# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
8

Giải trình

Trong ví dụ này, chúng tôi đã chia

# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
3 cho
np.divide[12,4]
0

Khi chúng tôi thực hiện việc này, Numpy “truyền phát” mảng 1D qua mảng 2D khi nó thực hiện phép chia [i. e. , nó phát sóng

np.divide[12,4]
0 trên
# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
3]

Vì vậy, hàm chia các giá trị của hàng 1

# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
3 cho
np.divide[12,4]
0, phần tử khôn ngoan. Sau đó, nó chia các giá trị của hàng 2
# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
3 cho
np.divide[12,4]
0. Và như thế

Lưu ý rằng điều này là có thể vì số phần tử trong

np.divide[12,4]
0 giống như số phần tử trong mỗi hàng của
# CREATE 1D 'VECTOR'
vector_1d = np.array[[10,20,30]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9
numbers_1_to_9 = np.arange[start = 1, stop = 10]
matrix_2d_ordered = numbers_1_to_9.reshape[[3,3]]

# CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED
np.random.seed[22]
matrix_2d_random = np.random.choice[size = [3,3], a = numbers_1_to_9, replace = False]
3. Để phát sóng hoạt động như thế này, các mảng cần có kích thước sao cho mảng thứ hai có thể được phát trên mảng thứ nhất

Để lại câu hỏi khác của bạn trong các ý kiến ​​​​dưới đây

Bạn có câu hỏi nào khác về cách sử dụng phân chia Numpy trên mảng Numpy không?

Nếu vậy, hãy để lại câu hỏi của bạn trong phần bình luận bên dưới

Tham gia khóa học của chúng tôi để tìm hiểu thêm về Numpy

Trong hướng dẫn này, tôi đã giải thích cách chia mảng Numpy với np. chia

Điều này sẽ giúp bạn phân chia mảng, nhưng nếu bạn thực sự muốn học Numpy, thì còn rất nhiều điều cần học

Nếu bạn nghiêm túc về việc thành thạo Numpy và nghiêm túc về khoa học dữ liệu trong Python, bạn nên cân nhắc tham gia khóa học cao cấp của chúng tôi có tên là Numpy Mastery

Numpy Mastery sẽ dạy cho bạn mọi thứ bạn cần biết về Numpy, bao gồm

  • Cách tạo mảng Numpy
  • Cách định hình lại, tách và kết hợp các mảng Numpy của bạn
  • Chức năng “Numpy random seed” làm gì
  • Cách sử dụng các hàm ngẫu nhiên Numpy
  • Cách thực hiện các phép toán trên mảng Numpy
  • và hơn thế nữa …

Hơn nữa, khóa học này sẽ cho bạn thấy một hệ thống thực hành giúp bạn thành thạo cú pháp trong vòng vài tuần. Chúng tôi sẽ chỉ cho bạn một hệ thống thực hành cho phép bạn ghi nhớ tất cả cú pháp Numpy mà bạn đã học. Nếu bạn gặp khó khăn trong việc ghi nhớ cú pháp Numpy, đây là khóa học bạn đang tìm kiếm

Chủ Đề