Nhiều đối số dòng lệnh trong python
Làm việc trong một dự án máy học có nghĩa là chúng ta cần thử nghiệm. Có một cách để định cấu hình tập lệnh của bạn một cách dễ dàng sẽ giúp bạn di chuyển nhanh hơn. Trong Python, chúng tôi có một cách để điều chỉnh mã từ một dòng lệnh. Trong hướng dẫn này, chúng ta sẽ xem cách chúng ta có thể tận dụng các đối số dòng lệnh cho tập lệnh Python để giúp bạn làm việc tốt hơn trong dự án máy học của mình Show
Sau khi kết thúc hướng dẫn này, bạn sẽ học
Bắt đầu dự án của bạn với cuốn sách mới Python for Machine Learning của tôi, bao gồm các hướng dẫn từng bước và các tệp mã nguồn Python cho tất cả các ví dụ Bắt đầu nàoĐối số dòng lệnh cho tập lệnh Python của bạn. Ảnh của insung yoon. Một số quyền được bảo lưu Tổng quanHướng dẫn này gồm ba phần;
Chạy Tập lệnh Python trong Dòng lệnhCó nhiều cách để chạy tập lệnh Python. Ai đó có thể chạy nó như một phần của sổ ghi chép Jupyter. Ai đó có thể chạy nó trong IDE. Nhưng trong tất cả các nền tảng, luôn có thể chạy tập lệnh Python trong dòng lệnh. Trong Windows, bạn có dấu nhắc lệnh hoặc PowerShell (hoặc tốt hơn nữa là Windows Terminal). Trong macOS hoặc Linux, bạn có Terminal hoặc xterm. Chạy tập lệnh Python trong dòng lệnh rất hiệu quả vì bạn có thể chuyển các tham số bổ sung vào tập lệnh Đoạn script sau cho phép chúng ta chuyển các giá trị từ dòng lệnh vào Python 1 2 3 4 nhập sys
n = int(sys.argv[1]) in(n+1) Chúng tôi lưu vài dòng này vào một tệp và chạy nó trong dòng lệnh với một đối số Vỏ bọc1 2 dòng lệnh $ python. py 15 16 Sau đó, bạn sẽ thấy nó lấy đối số của chúng ta, chuyển đổi nó thành một số nguyên, thêm một số vào nó và in ra. Danh sách Khi bạn chạy một dòng lệnh với một tập hợp các đối số phức tạp hơn, sẽ mất một số nỗ lực để xử lý danh sách 1 rsync -a -v --exclude="*. pyc" -B 1024 --ignore-hiện có 192. 168. 0. 3. /tmp/. / Các đối số tùy chọn được giới thiệu bởi “ Phần sau sao chép ví dụ trên bằng Python bằng argparse 1 2 3 4 5 6 7 8 9 10 11 12 13 14 nhập argparse
trình phân tích cú pháp = argparse. Trình phân tích đối số(mô tả=", formatter_class=argparse. ArgumentDefaultsHelpFormatter) trình phân tích cú pháp. add_argument("-a", "--archive", action="store_true", help="archive mode") trình phân tích cú pháp. add_argument("-v", "--verbose", action="store_true", help="increase verbosity") trình phân tích cú pháp. add_argument("-B", "--block-size", help="checksum blocksize") trình phân tích cú pháp. add_argument("--bỏ qua đối số", action="store_true", help="skip files that exist") trình phân tích cú pháp. add_argument("--exclude", help="files to exclude") trình phân tích cú pháp. add_argument("src", help="Source location") trình phân tích cú pháp. add_argument("dest", help="Destination location") args = trình phân tích cú pháp. parse_args() config = vars(args) in(config) Nếu bạn chạy đoạn script trên, bạn sẽ thấy 1 2 3 $ python argparse_example. py cách sử dụng. argparse_example. py [-h] [-a] [-v] [-B BLOCK_SIZE] [--bỏ qua tồn tại] [--loại trừ EXCLUDE] src dest argparse_example. py. lỗi. các đối số sau đây là bắt buộc. src, đích Điều này có nghĩa là bạn đã không cung cấp các đối số bắt buộc cho 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 $ python argparse_example. py --help cách sử dụng. argparse_example. py [-h] [-a] [-v] [-B BLOCK_SIZE] [--bỏ qua tồn tại] [--loại trừ EXCLUDE] src dest
Chỉ là một ví dụ
đối số vị trí src Vị trí nguồn điểm đến Vị trí điểm đến
đối số tùy chọn -h, --help hiển thị thông báo trợ giúp này và thoát -a, --archive chế độ lưu trữ (mặc định. SAI) -v, --verbose tăng mức độ chi tiết (mặc định. SAI) -B BLOCK_SIZE, --kích thước khối BLOCK_SIZE kích thước khối tổng kiểm tra (mặc định. Không có) --ignore-current bỏ qua các tệp tồn tại (mặc định. SAI) --exclude EXCLUDE tệp cần loại trừ (mặc định. Không có) Mặc dù tập lệnh không có gì thực, nhưng nếu bạn cung cấp các đối số theo yêu cầu, bạn sẽ thấy điều này 1 2 $ python argparse_example. py -a --ignore-hiện có 192. 168. 0. 1. /tmp/ /nhà {'lưu trữ'. Đúng, 'dài dòng'. Sai, 'block_size'. Không, 'bỏ qua_hiện tại'. Đúng, 'loại trừ'. Không, 'src'. '192. 168. 0. 1. /tmp/', 'đích'. '/trang chủ'} Đối tượng trình phân tích cú pháp được tạo bởi Thông thường, đối với tất cả các đối số tùy chọn, chúng tôi cung cấp tùy chọn dài và đôi khi cũng có tùy chọn ngắn. Sau đó, chúng tôi có thể truy cập giá trị được cung cấp từ dòng lệnh bằng cách sử dụng tùy chọn dài làm khóa (với dấu gạch nối được thay thế bằng dấu gạch dưới hoặc tùy chọn ngắn một ký tự làm khóa nếu chúng tôi không có phiên bản dài). "Các đối số vị trí" không phải là tùy chọn và tên của chúng được cung cấp trong hàm Có nhiều loại lập luận. Đối với các đối số tùy chọn, đôi khi chúng tôi sử dụng chúng làm cờ Boolean, nhưng đôi khi chúng tôi mong đợi chúng mang lại một số dữ liệu. Ở phần trên, chúng tôi sử dụng Chúng ta có thể yêu cầu thêm một đối số là một loại cụ thể. Ví dụ: trong tùy chọn 1 trình phân tích cú pháp. add_argument("-B", "--block-size", type=int, help="checksum blocksize") Và nếu chúng tôi cung cấp sai loại, argparse sẽ giúp chấm dứt chương trình của chúng tôi với một thông báo lỗi đầy đủ thông tin 1 2 3 python argparse_example. py -a -B xin chào --ignore-hiện có 192. 168. 0. 1. /tmp/ /nhà cách sử dụng. argparse_example. py [-h] [-a] [-v] [-B BLOCK_SIZE] [--bỏ qua tồn tại] [--loại trừ EXCLUDE] src dest argparse_example. py. lỗi. đối số -B/--block-size. giá trị int không hợp lệ. 'Xin chào' Làm việc trên dòng lệnhTrao quyền cho tập lệnh Python của bạn bằng các đối số dòng lệnh có thể đưa nó lên một cấp độ mới về khả năng sử dụng lại. Trước tiên, hãy xem một ví dụ đơn giản về việc khớp mô hình ARIMA với chuỗi thời gian GDP. Ngân hàng Thế giới thu thập dữ liệu GDP lịch sử từ nhiều quốc gia. Chúng ta có thể sử dụng gói 1 pip cài đặt pandas_datareader Mã cho dữ liệu GDP mà chúng tôi sử dụng là 1 2 3 từ pandas_datareader. wb nhập WorldBankReader
gdp = WorldBankReader("NY. GDP. MKTP. CN", "SE", bắt đầu=1960, end=2020).đọc() Sau đó, chúng ta có thể dọn dẹp DataFrame một chút bằng cách sử dụng các công cụ do gấu trúc cung cấp 1 2 3 4 5 6 7 8 9 nhập gấu trúc as pd
# Xoá tên quốc gia khỏi chỉ mục gdp = gdp. cấp độ giảm(cấp độ=0, axis=0) # Sắp xếp dữ liệu theo trình tự thời gian và đặt điểm dữ liệu vào cuối năm gdp. chỉ mục = pd. to_datetime(gdp. chỉ mục) gdp = gdp. sort_index(). lấy mẫu lại("y").lần cuối() # Chuyển đổi Khung dữ liệu gấu trúc thành Sê-ri gấu trúc gdp = gdp["NY. GDP. MKTP. CN"] Lắp mô hình ARIMA và sử dụng mô hình để dự đoán không khó. Trong phần sau, chúng tôi điều chỉnh nó bằng cách sử dụng 40 điểm dữ liệu đầu tiên và dự báo cho 3 điểm tiếp theo. Sau đó so sánh dự báo với thực tế về sai số tương đối 1 2 3 4 5 6 7 nhập mô hình thống kê. api as sm
mô hình = sm. tsa. ARIMA(endog=gdp . [:40], đặt hàng= . (1,1,1)).phù hợp() dự báo = mô hình. dự báo(các bước=3) so sánh = pd. Khung dữ liệu({"thực tế":gdp, "dự báo". dự báo}). dropna() so sánh["lỗi liên quan"] =< (compare["forecast"] - compare["actual"])/compare["actual"] in(so sánh) Đặt tất cả lại với nhau và sau khi đánh bóng một chút, sau đây là mã hoàn chỉnh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 nhập cảnh báo cảnh báo. bộ lọc đơn giản("bỏ qua")
từ pandas_datareader. wb nhập WorldBankReader nhập mô hình thống kê. api as sm nhập gấu trúc as pd
sê-ri = "NY. GDP. MKTP. CN" quốc gia = "SE" # Thụy Điển độ dài = 40 bắt đầu = 0 các bước = 3 đơn đặt hàng = (1,1,1)
# Đọc dữ liệu GDP từ cơ sở dữ liệu của Ngân hàng Thế giới gdp = WorldBankReader(bộ, country, start=1960, end=2020).đọc() # Xoá tên quốc gia khỏi chỉ mục gdp = gdp. cấp độ giảm(cấp độ=0, axis=0) # Sắp xếp dữ liệu theo trình tự thời gian và đặt điểm dữ liệu vào cuối năm gdp. chỉ mục = pd. to_datetime(gdp. chỉ mục) gdp = gdp. sort_index(). lấy mẫu lại("y").lần cuối() # Chuyển đổi khung dữ liệu gấu trúc thành chuỗi gấu trúc gdp = gdp[loạt] # Phù hợp với mô hình arima kết quả = sm. tsa. ARIMA(endog=gdp . [start:bắt đầu+độ dài], . order=order).phù hợp() # Dự báo và tính toán sai số tương đối dự báo = kết quả. dự báo(bước=bước) df = pd. Khung dữ liệu({"Thực tế":gdp, "Dự báo". dự báo}). dropna() df["Lỗi Rel"] =< (df["Forecast"] - df["Actual"]) / df["Actual"] # In kết quả với pd. option_context('hiển thị. max_rows', Không có, 'hiển thị. max_columns', 3). in(df) Tập lệnh này in đầu ra sau 1 2 3 4 Thực tế Lỗi Dự báo Rel 2000-12-31 2408151000000 2. 367152e+12 -0. 017025 2001-12-31 2503731000000 2. 449716e+12 -0. 021574 2002-12-31 2598336000000 2. 516118e+12 -0. 031643 Đoạn mã trên ngắn, nhưng chúng tôi đã làm cho nó đủ linh hoạt bằng cách giữ một số tham số trong các biến. Chúng ta có thể thay đổi đoạn mã trên để sử dụng argparse để chúng ta có thể thay đổi một số tham số từ dòng lệnh, như sau 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 từ argparse nhập ArgumentParser, ArgumentDefaultsHelpFormatter nhập cảnh báo cảnh báo. bộ lọc đơn giản("bỏ qua")
từ pandas_datareader. wb nhập WorldBankReader nhập mô hình thống kê. api as sm nhập gấu trúc as pd
# Phân tích đối số dòng lệnh trình phân tích cú pháp = Trình phân tích đối số(formatter_class=ArgumentDefaultsHelpFormatter) trình phân tích cú pháp. add_argument("-c", "--country", default="SE", help="Two-letter country code") trình phân tích cú pháp. add_argument("-l", "--length", default=40, type=int, help="Length of time series to fit the ARIMA model") trình phân tích cú pháp. add_argument("-s", "--start", default=0, type=int, help="Starting offset to fit the ARIMA model") args = vars(trình phân tích cú pháp.parse_args())
# Cài đặt thông số sê-ri = "NY. GDP. MKTP. CN" quốc gia = args["quốc gia"] độ dài = đối số["độ dài"] start = args["start"] các bước = 3 đơn đặt hàng = (1,1,1)
# Đọc dữ liệu GDP từ cơ sở dữ liệu của Ngân hàng Thế giới gdp = WorldBankReader(bộ, country, start=1960, end=2020).đọc() # Xoá tên quốc gia khỏi chỉ mục gdp = gdp. cấp độ giảm(cấp độ=0, axis=0) # Sắp xếp dữ liệu theo trình tự thời gian và đặt điểm dữ liệu vào cuối năm gdp. chỉ mục = pd. to_datetime(gdp. chỉ mục) gdp = gdp. sort_index(). lấy mẫu lại("y").lần cuối() # Chuyển đổi khung dữ liệu gấu trúc thành chuỗi gấu trúc gdp = gdp[loạt] # Phù hợp với mô hình arima kết quả = sm. tsa. ARIMA(endog=gdp . [start:bắt đầu+độ dài], . order=order).phù hợp() # Dự báo và tính toán sai số tương đối dự báo = kết quả. dự báo(bước=bước) df = pd. Khung dữ liệu({"Thực tế":gdp, "Dự báo". dự báo}). dropna() df["Lỗi Rel"] =< (df["Forecast"] - df["Actual"]) / df["Actual"] # In kết quả với pd. option_context('hiển thị. max_rows', Không có, 'hiển thị. max_columns', 3). in(df) Nếu chúng ta chạy đoạn mã trên trong một dòng lệnh, chúng ta có thể thấy nó hiện có thể chấp nhận các đối số 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 $ python gdp_arima. py --help cách sử dụng. gdp_arima. py [-h] [-c QUỐC GIA] [-l LENGTH] [-s BẮT ĐẦU]
đối số tùy chọn -h, --help hiển thị thông báo trợ giúp này và thoát -c QUỐC GIA, --quốc gia QUỐC GIA Mã quốc gia gồm hai chữ cái (mặc định. SE) -l LENGTH, --length LENGTH Độ dài của chuỗi thời gian để phù hợp với mô hình ARIMA (mặc định. 40) -s BẮT ĐẦU, --bắt đầu BẮT ĐẦU Bắt đầu offset để phù hợp với mô hình ARIMA (mặc định. 0) $ python gdp_arima. py Thực tế Lỗi Dự báo Rel 2000-12-31 2408151000000 2. 367152e+12 -0. 017025 2001-12-31 2503731000000 2. 449716e+12 -0. 021574 2002-12-31 2598336000000 2. 516118e+12 -0. 031643 $ python gdp_arima. py -c KHÔNG Thực tế Lỗi Dự báo Rel 2000-12-31 1507283000000 1. 337229e+12 -0. 112821 2001-12-31 1564306000000 1. 408769e+12 -0. 099429 2002-12-31 1561026000000 1. 480307e+12 -0. 051709 Trong lệnh cuối cùng ở trên, chúng tôi chuyển vào Sức mạnh của việc giới thiệu một đối số dòng lệnh là chúng ta có thể dễ dàng kiểm tra mã của mình với các tham số khác nhau. Ví dụ: chúng tôi muốn xem liệu mô hình ARIMA(1,1,1) có phải là mô hình tốt để dự đoán GDP hay không và chúng tôi muốn xác minh với một cửa sổ thời gian khác của các quốc gia Bắc Âu
Chúng tôi muốn kiểm tra cửa sổ 40 năm nhưng với các điểm xuất phát khác nhau (kể từ 1960, 1965, 1970, 1975). Tùy thuộc vào hệ điều hành, bạn có thể tạo vòng lặp for trong Linux và mac bằng cú pháp bash shell Vỏ bọc1 2 3 4 5 vì C ở ĐK FI IS NO SE; do cho S trong 0 5 10 15; do python gdp_arima. py -c $C -s $S xong xong Hoặc, khi cú pháp trình bao cho phép, chúng ta có thể đặt mọi thứ vào một dòng Vỏ bọc1 vì C ở ĐK FI IS NO SE; do for S in 0 5 10 15; do python gdp_arima.py -c $C -s $S ; done ; done Hoặc thậm chí tốt hơn, hãy cung cấp một số thông tin ở mỗi lần lặp lại vòng lặp và chúng tôi sẽ chạy tập lệnh của mình nhiều lần 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 $ cho C trong DK FI LÀ KHÔNG SE; . py -c $C -s $S ; ĐK 0 Thực tế Lỗi Dự báo Rel 2000-12-31 1. 326912e+12 1. 290489e+12 -0. 027449 2001-12-31 1. 371526e+12 1. 338878e+12 -0. 023804 2002-12-31 1. 410271e+12 1. 386694e+12 -0. 016718 ĐK 5 Thực tế Lỗi Dự báo Rel 2005-12-31 1. 585984e+12 1. 555961e+12 -0. 018931 2006-12-31 1. 682260e+12 1. 605475e+12 -0. 045644 2007-12-31 1. 738845e+12 1. 654548e+12 -0. 048479 ĐK 10 Thực tế Lỗi Dự báo Rel 2010-12-31 1. 810926e+12 1. 762747e+12 -0. 026605 2011-12-31 1. 846854e+12 1. 803335e+12 -0. 023564 2012-12-31 1. 895002e+12 1. 843907e+12 -0. 026963
...
SE 5 Thực tế Lỗi Dự báo Rel 2005-12-31 2931085000000 2. 947563e+12 0. 005622 2006-12-31 3121668000000 3. 043831e+12 -0. 024934 2007-12-31 3320278000000 3. 122791e+12 -0. 059479 SE 10 Thực tế Lỗi Dự báo Rel 31-12-2010 3573581000000 3. 237310e+12 -0. 094099 31-12-2011 3727905000000 3. 163924e+12 -0. 151286 31-12-2012 3743086000000 3. 112069e+12 -0. 168582 SE 15 Thực tế Lỗi Dự báo Rel 31-12-2015 4260470000000 4. 086529e+12 -0. 040827 31-12-2016 4415031000000 4. 180213e+12 -0. 053186 31-12-2017 4625094000000 4. 273781e+12 -0. 075958 Nếu đang sử dụng Windows, bạn có thể sử dụng cú pháp sau trong dấu nhắc lệnh Hệ điều hành MS1 cho % C trong (DK FI IS NO SE) do for %S in (0 5 10 15) do python gdp_arima. py -c $ C -s $S hoặc phần sau trong PowerShell PowerShell1 foreach ($C in "DK"< . ,"FI","IS","NO","SE") { foreach ($S in 0,5,10,15) { python gdp_arima.py -c $C -s $S } } Cả hai sẽ tạo ra cùng một kết quả Mặc dù chúng ta có thể đặt một vòng lặp tương tự bên trong tập lệnh Python của mình, đôi khi sẽ dễ dàng hơn nếu chúng ta có thể thực hiện điều đó tại dòng lệnh. Nó có thể thuận tiện hơn khi chúng ta đang khám phá các tùy chọn khác nhau. Hơn nữa, bằng cách sử dụng vòng lặp bên ngoài mã Python, chúng tôi có thể yên tâm rằng mỗi khi chúng tôi chạy tập lệnh, nó sẽ độc lập vì chúng tôi sẽ không chia sẻ bất kỳ biến nào giữa các lần lặp Thay thế cho đối số dòng lệnhSử dụng đối số dòng lệnh không phải là cách duy nhất để chuyển dữ liệu vào tập lệnh Python của bạn. Ít nhất, cũng có một số cách khác
Biến môi trường là các tính năng từ hệ điều hành của bạn để giữ một lượng nhỏ dữ liệu trong bộ nhớ. Chúng ta có thể đọc các biến môi trường trong Python bằng cú pháp sau 1 2 nhập os in(os. môi trường["MYVALUE"]) Ví dụ, trong Linux, đoạn script hai dòng trên sẽ hoạt động với shell như sau 1 2 3 $ xuất MYVALUE="xin chào" $ python show_env. py Xin chào Trong Windows, cú pháp bên trong dấu nhắc lệnh cũng tương tự 1 2 3 4 C. \MLM> đặt MYVALUE=xin chào
C. \MLM> python show_env. py Xin chào Bạn cũng có thể thêm hoặc chỉnh sửa các biến môi trường trong Windows bằng hộp thoại trong Bảng điều khiển Vì vậy, chúng tôi có thể giữ các tham số cho tập lệnh trong một số biến môi trường và để tập lệnh điều chỉnh hành vi của nó, chẳng hạn như thiết lập đối số dòng lệnh Trong trường hợp chúng ta có nhiều tùy chọn để thiết lập, tốt hơn hết là lưu các tùy chọn vào một tệp thay vì tràn ngập dòng lệnh. Tùy thuộc vào định dạng đã chọn, chúng ta có thể sử dụng mô-đun Đối với ví dụ trên chạy mô hình ARIMA trên dữ liệu GDP, chúng ta có thể sửa đổi mã để sử dụng tệp cấu hình YAML 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 nhập cảnh báo cảnh báo. bộ lọc đơn giản("bỏ qua")
từ pandas_datareader. wb nhập WorldBankReader nhập mô hình thống kê. api as sm nhập gấu trúc as pd nhập yaml
# Tải cấu hình từ tệp YAML với mở("config. yaml", "r") như fp: args = yaml. safe_load(fp)
# Cài đặt thông số sê-ri = "NY. GDP. MKTP. CN" quốc gia = args["quốc gia"] độ dài = đối số["độ dài"] start = args["start"] các bước = 3 đơn đặt hàng = (1,1,1)
# Đọc dữ liệu GDP từ cơ sở dữ liệu của Ngân hàng Thế giới gdp = WorldBankReader(bộ, country, start=1960, end=2020).đọc() # Xoá tên quốc gia khỏi chỉ mục gdp = gdp. cấp độ giảm(cấp độ=0, axis=0) # Sắp xếp dữ liệu theo trình tự thời gian và đặt điểm dữ liệu vào cuối năm gdp. chỉ mục = pd. to_datetime(gdp. chỉ mục) gdp = gdp. sort_index(). lấy mẫu lại("y").lần cuối() # Chuyển đổi khung dữ liệu gấu trúc thành chuỗi gấu trúc gdp = gdp[loạt] # Phù hợp với mô hình arima kết quả = sm. tsa. ARIMA(endog=gdp . [start:bắt đầu+độ dài], . order=order).phù hợp() # Dự báo và tính toán sai số tương đối dự báo = kết quả. dự báo(bước=bước) df = pd. Khung dữ liệu({"Thực tế":gdp, "Dự báo". dự báo}). dropna() df["Lỗi Rel"] =< (df["Forecast"] - df["Actual"]) / df["Actual"] # In kết quả với pd. option_context('hiển thị. max_rows', Không có, 'hiển thị. max_columns', 3). in(df) Tệp cấu hình YAML có tên là 1 2 3 quốc gia. ĐN chiều dài. 40 bắt đầu. 0 Sau đó, chúng ta có thể chạy đoạn mã trên và thu được kết quả như trước. Đối tác JSON rất giống nhau, trong đó chúng tôi sử dụng hàm 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 nhập json nhập cảnh báo cảnh báo. bộ lọc đơn giản("bỏ qua")
từ pandas_datareader. wb nhập WorldBankReader nhập mô hình thống kê. api as sm nhập gấu trúc as pd
# Tải cấu hình từ tệp JSON với mở("config. json", "r") as fp: args = json. tải(fp)
# Cài đặt thông số sê-ri = "NY. GDP. MKTP. CN" quốc gia = args["quốc gia"] độ dài = đối số["độ dài"] start = args["start"] các bước = 3 đơn đặt hàng = (1,1,1)
# Đọc dữ liệu GDP từ cơ sở dữ liệu của Ngân hàng Thế giới gdp = WorldBankReader(bộ, country, start=1960, end=2020).đọc() # Xoá tên quốc gia khỏi chỉ mục gdp = gdp. cấp độ giảm(cấp độ=0, axis=0) # Sắp xếp dữ liệu theo trình tự thời gian và đặt điểm dữ liệu vào cuối năm gdp. chỉ mục = pd. to_datetime(gdp. chỉ mục) gdp = gdp. sort_index(). lấy mẫu lại("y").lần cuối() # Chuyển đổi khung dữ liệu gấu trúc thành chuỗi gấu trúc gdp = gdp[loạt] # Phù hợp với mô hình arima kết quả = sm. tsa. ARIMA(endog=gdp . [start:bắt đầu+độ dài], . order=order).phù hợp() # Dự báo và tính toán sai số tương đối dự báo = kết quả. dự báo(bước=bước) df = pd. Khung dữ liệu({"Thực tế":gdp, "Dự báo". dự báo}). dropna() df["Lỗi Rel"] =< (df["Forecast"] - df["Actual"]) / df["Actual"] # In kết quả với pd. option_context('hiển thị. max_rows', Không có, 'hiển thị. max_columns', 3). in(df) Và tệp cấu hình JSON, 1 2 3 4 5 { "quốc gia". "SE", "chiều dài". 40, "bắt đầu". 0 } Bạn có thể tìm hiểu thêm về cú pháp của JSON và YAML cho dự án của mình. Nhưng ý tưởng ở đây là chúng ta có thể tách biệt dữ liệu và thuật toán để mã của chúng ta có khả năng sử dụng lại tốt hơn Bạn muốn bắt đầu với Python cho Machine Learning?Tham gia khóa học xử lý sự cố email miễn phí trong 7 ngày của tôi ngay bây giờ (có mã mẫu) Nhấp để đăng ký và cũng nhận được phiên bản PDF Ebook miễn phí của khóa học Tải xuống khóa học nhỏ MIỄN PHÍ của bạn Đọc thêmPhần này cung cấp nhiều tài nguyên hơn về chủ đề này nếu bạn muốn tìm hiểu sâu hơn thư viện
Bài viết
Sách
Bản tóm tắtTrong hướng dẫn này, bạn đã thấy cách chúng ta có thể sử dụng dòng lệnh để kiểm soát tập lệnh Python hiệu quả hơn. Cụ thể, bạn đã học Có bao nhiêu đối số mà một chương trình Python có thể chấp nhận từ dòng lệnh?Đầu ra cho thấy số lượng đối số là 5 và danh sách đối số bao gồm tên chương trình, main, theo sau là .
4 loại đối số trong Python là gì?Trong Python, chúng ta có 4 loại đối số hàm sau. . Đối số mặc định Đối số từ khóa (đối số được đặt tên) đối số vị trí Đối số tùy ý (đối số có độ dài thay đổi *args và **kwargs ) 3 loại đối số trong Python là gì?Do đó, chúng tôi kết luận rằng Đối số hàm Python và ba loại đối số hàm của nó. Đây là- các đối số mặc định, từ khóa và tùy ý .
Có thể truyền nhiều đối số cho một hàm không?Các chức năng có thể chấp nhận nhiều hơn một đối số. Khi gọi một hàm, bạn có thể truyền nhiều đối số cho hàm; |