Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách sử dụng hàm prod() trong NumPy
Trong bài tập này, bạn sẽ học cách sử dụng hàm numpy prod()
để tính tích của các số trong một mảng. Hàm này là một công cụ hữu ích trong NumPy, giúp bạn dễ dàng tính toán tích của các phần tử trong một mảng một cách nhanh chóng và hiệu quả. Việc sử dụng hàm prod()
sẽ giúp bạn thực hiện các phép tính nhân một cách đơn giản hơn, đặc biệt khi làm việc với các mảng nhiều chiều hoặc cần tính tích theo từng trục cụ thể. Hãy cùng tìm hiểu cách sử dụng hàm numpy prod()
qua các ví dụ cụ thể dưới đây.
Giới thiệu về hàm prod() trong NumPy
Giả sử bạn có ba số n, m, và k. Tích của ba số này là n x m x k. Ví dụ, tích của 2, 3, và 4 là 2 x 3 x 4 = 24.
Để tính tích của các số trong một mảng, bạn sử dụng hàm numpy prod()
:
numpy.prod(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)
Ví dụ về hàm prod() trong NumPy
Hãy xem một số ví dụ về cách sử dụng hàm numpy prod()
.
Bài viết này được đăng tại [free tuts .net]
Sử dụng hàm numpy prod() với mảng 1-D
Ví dụ sau sử dụng hàm prod()
để tính tích của các số trong một mảng 1-D:
import numpy as np a = np.arange(1, 5) result = np.prod(a) #Bài viết này được đăng tại freetuts.net print(a) print(f'result={result}')
Kết quả:
[1 2 3 4] result=24
Cách hoạt động:
Đầu tiên, tạo một mảng có 4 số từ 1 đến 4 bằng cách sử dụng hàm arange()
:
a = np.arange(1, 5)
Tiếp theo, tính tích của tất cả các số trong mảng a
:
result = np.prod(a)
Cuối cùng, hiển thị các số trong mảng a
và kết quả tích của chúng:
print(a) print(f'result={result}')
Lưu ý rằng bạn có thể truyền một đối tượng giống mảng như một danh sách vào hàm prod()
. Ví dụ:
import numpy as np #Bài viết này được đăng tại freetuts.net result = np.prod([1, 2, 3, 4, 5]) print(f'result={result}')
Kết quả:
result=120
Sử dụng hàm numpy prod() với mảng nhiều chiều
Ví dụ sau sử dụng hàm prod()
để tính tích của tất cả các số trong một mảng 2-D:
import numpy as np #Bài viết này được đăng tại freetuts.net result = np.prod([ [1, 2], [3, 4] ]) print(f'result={result}')
Kết quả:
result=24
Để tính tích của các số theo một chiều nhất định, bạn có thể chỉ định tham số axis
. Ví dụ, sau đây sử dụng hàm prod()
để tính tích của các số theo trục 0:
import numpy as np #Bài viết này được đăng tại freetuts.net result = np.prod([ [1, 2], [3, 4] ], axis=0) print(f'result={result}')
Kết quả:
result=[3 8]
Tương tự, bạn có thể tính tích của các số theo trục 1:
import numpy as np #Bài viết này được đăng tại freetuts.net result = np.prod([ [1, 2], [3, 4] ], axis=1) print(f'result={result}')
Kết quả:
result=[ 2 12]
Chọn các số để bao gồm trong tích
Để chọn các số cụ thể để bao gồm trong tích, bạn sử dụng tham số where
. Ví dụ:
import numpy as np #Bài viết này được đăng tại freetuts.net a = np.array([np.nan, 3, 4]) result = np.prod(a, where=[False, True, True]) print(result)
Kết quả:
12.0
Trong ví dụ này, mảng chứa ba phần tử: np.nan
, 3, và 4.
Tham số where
sử dụng một danh sách boolean để chỉ định phần tử nào trong mảng a
nên được bao gồm trong tích.
Nếu giá trị của danh sách where
là True
, phần tử tương ứng của mảng đầu vào sẽ được bao gồm trong tích.
Các trường hợp đặc biệt
Lưu ý rằng nếu bạn truyền một mảng số nguyên lớn vào hàm prod()
gây tràn số, hàm prod()
sẽ không gây ra lỗi. Ví dụ:
import numpy as np #Bài viết này được đăng tại freetuts.net result = np.prod(np.arange(1, 100)) print(f'result={result}')
Kết quả:
result=0
Hàm prod()
trả về 1 nếu mảng rỗng. Ví dụ:
import numpy as np #Bài viết này được đăng tại freetuts.net result = np.prod(np.array([])) print(f'result={result}')
Kết quả:
1.0
Kết bài
Bằng cách sử dụng hàm numpy prod()
, bạn có thể dễ dàng tính toán tích của các phần tử trong một mảng, từ mảng một chiều đến mảng nhiều chiều. Hàm này cung cấp nhiều tùy chọn linh hoạt như tính tích theo từng trục cụ thể hoặc lựa chọn các phần tử cụ thể để tính toán. Qua các ví dụ minh họa, mình đã thấy được tính ứng dụng cao và sự tiện lợi của hàm numpy prod()
trong việc xử lý các phép toán nhân trong Python. Hãy áp dụng kiến thức này vào các bài toán thực tế của bạn để tối ưu hóa quá trình tính toán và phân tích dữ liệu.