Đây là một số phép đo hiệu suất từ máy của tôi. Có liên quan trong trường hợp điều này được thực hiện cho các đầu vào nhỏ trong một vòng lặp dài:
import functools, operator, timeit
import numpy as np
def multiply_numpy[iterable]:
return np.prod[np.array[iterable]]
def multiply_functools[iterable]:
return functools.reduce[operator.mul, iterable]
def multiply_manual[iterable]:
prod = 1
for x in iterable:
prod *= x
return prod
sizesToTest = [5, 10, 100, 1000, 10000, 100000]
for size in sizesToTest:
data = [1] * size
timerNumpy = timeit.Timer[lambda: multiply_numpy[data]]
timerFunctools = timeit.Timer[lambda: multiply_functools[data]]
timerManual = timeit.Timer[lambda: multiply_manual[data]]
repeats = int[5e6 / size]
resultNumpy = timerNumpy.timeit[repeats]
resultFunctools = timerFunctools.timeit[repeats]
resultManual = timerManual.timeit[repeats]
print[f'Input size: {size:>7d} Repeats: {repeats:>8d} Numpy: {resultNumpy:.3f}, Functools: {resultFunctools:.3f}, Manual: {resultManual:.3f}']
Results:
Input size: 5 Repeats: 1000000 Numpy: 4.670, Functools: 0.586, Manual: 0.459
Input size: 10 Repeats: 500000 Numpy: 2.443, Functools: 0.401, Manual: 0.321
Input size: 100 Repeats: 50000 Numpy: 0.505, Functools: 0.220, Manual: 0.197
Input size: 1000 Repeats: 5000 Numpy: 0.303, Functools: 0.207, Manual: 0.185
Input size: 10000 Repeats: 500 Numpy: 0.265, Functools: 0.194, Manual: 0.187
Input size: 100000 Repeats: 50 Numpy: 0.266, Functools: 0.198, Manual: 0.185
Bạn có thể thấy rằng Numpy chậm hơn một chút so với các đầu vào nhỏ hơn, vì nó phân bổ một mảng trước khi nhân lên. Ngoài ra, coi chừng tràn trong Numpy.
Viết một chương trình Python để nhân tất cả các mục trong danh sách.Danh sách Python: Bài tập-2 với giải pháp
Ví dụ 1 :
Ví dụ - 2:
Ví dụ - 3:
Giải pháp mẫu:-:-
Mã Python:
def multiply_list[items]:
tot = 1
for x in items:
tot *= x
return tot
print[multiply_list[[1,2,-8]]]
Đầu ra mẫu:
-16
Flowchart:
Trực quan hóa thực thi mã Python:
Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực hiện chương trình đã nói:
Trình chỉnh sửa mã Python:
Có một cách khác để giải quyết giải pháp này? Đóng góp mã của bạn [và nhận xét] thông qua Disqus.
Trước đây: Viết chương trình Python để tổng hợp tất cả các mục trong danh sách. Write a Python program to sum all the items in a list.
Next: Write a Python program to get the largest number from a list.
Mức độ khó của bài tập này là gì?
Kiểm tra kỹ năng lập trình của bạn với bài kiểm tra của W3Resource.
Python: Lời khuyên trong ngày
Một cách thanh lịch để đối phó với đường dẫn tệp [3.4 =]:
>>> from pathlib import Path >>> data_folder = Path["source_data/text_files/"] # Path calculation and metadata >>> file_to_open = data_folder / "raw_data.txt" >>> file_to_open.name "raw_data.txt" >>> file_to_open.suffix "txt" >>> file_to_open.stem "raw_data" # Files functions >>> f = open[file_to_open] >>> f.read[] # content of the file >>> file_to_open.exists[] True
- Bài tập: Top 16 chủ đề phổ biến nhất hàng tuần
- Bài tập SQL, Thực hành, Giải pháp - Tham gia
- Bài tập SQL, Thực hành, Giải pháp - Quan sát phụ
- JavaScript Basic - Bài tập, Thực hành, Giải pháp
- Java Array: Bài tập, Thực hành, Giải pháp
- C Bài tập lập trình, Thực hành, Giải pháp: Tuyên bố có điều kiện
- Cơ sở dữ liệu nhân sự - Sắp xếp bộ lọc: Bài tập, Thực hành, Giải pháp
- C Bài tập lập trình, Thực hành, Giải pháp: Chuỗi
- Các loại dữ liệu Python: Từ điển - Bài tập, Thực hành, Giải pháp
- Câu đố lập trình Python - Bài tập, Thực hành, Giải pháp
- Mảng C ++: Bài tập, Thực hành, Giải pháp
- Báo cáo và vòng lặp có điều kiện JavaScript - Bài tập, Thực hành, Giải pháp
- Thuật toán cơ bản C# Sharp: Bài tập, Thực hành, Giải pháp
- Python Lambda - Bài tập, Thực hành, Giải pháp
- Python Pandas DataFrame: Bài tập, Thực hành, Giải pháp
- Công cụ chuyển đổi
- JavaScript: HTML Mẫu xác thực