Hướng dẫn how do you add arguments to a python script? - làm thế nào để bạn thêm các đối số vào một tập lệnh python?
Cập nhật lần cuối vào ngày 21 tháng 6 năm 2022 Show
Làm việc trên một dự án học máy 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 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 tôi sẽ xem làm thế nào chúng tôi 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 bạn. Sau khi hoàn thành 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, 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ụ. with my new book Python for Machine Learning, including step-by-step tutorials and the Python source code files for all examples. 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 là trong ba phần; họ đang:
Chạy tập lệnh Python trong dòng lệnhCó nhiều cách để chạy một kịch bản Python. Ai đó có thể chạy nó như một phần của máy tính xách tay Jupyter. Ai đó có thể chạy nó trong một 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, thậm chí tốt hơn là thiết bị đầu cuối Windows). Trong macOS hoặc Linux, bạn có thiết bị đầu cuối hoặc Xterm. Chạy tập lệnh Python trong dòng lệnh rất mạnh vì bạn có thể chuyển các tham số bổ sung cho tập lệnh. Tập lệnh sau cho phép chúng tôi chuyển các giá trị từ dòng lệnh vào Python:
Chúng tôi lưu một 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ố:
Sau đó, bạn sẽ thấy nó lấy đối số của chúng tôi, chuyển đổi nó thành một số nguyên, thêm một cái vào nó và in. 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, phải mất một số nỗ lực để xử lý danh sách
Các đối số tùy chọn được giới thiệu bởi ____ ____ ____ ____ hoặc hoặc ____ ____5555 Tùy chọn dài (chẳng hạn như & nbsp; ________ 9 & nbsp; và & nbsp; ________ 10 & nbsp; ở trên). Các đối số tùy chọn có thể có các tham số bổ sung, chẳng hạn như trong & nbsp; ________ 11 & nbsp; hoặc & nbsp; ________ 12 & nbsp; Ngoài ra, chúng ta cũng có thể có các đối số bắt buộc, mà chúng ta chỉ đưa vào dòng lệnh. Phần ________ 17 & nbsp; và & nbsp; ________ 18 ở trên là các ví dụ. Thứ tự của các lập luận bắt buộc là quan trọng. Ví dụ: lệnh ____ 19 & nbsp; ở trên sẽ sao chép các tệp từ & nbsp; ________ 17 & nbsp; to & nbsp; ________ 18 & nbsp; thay vì cách khác. Sau đây sao chép ví dụ trên trong Python bằng ArgParse:
Nếu bạn chạy tập lệnh trên, bạn sẽ thấy:
Điều này có nghĩa là bạn đã không cung cấp các đối số bắt buộc cho ____ 22 & nbsp; và & nbsp; ________ 23. Có lẽ lý do tốt nhất để sử dụng ArgParse là để có được màn hình trợ giúp miễn phí nếu bạn cung cấp ____ 24 & nbsp; hoặc & nbsp; ________ 25 & nbsp; như đối số, như sau:
Mặc dù tập lệnh không làm gì thật, 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:
Đối tượng phân tích cú pháp được tạo bởi & nbsp; ____ ____ 26 & nbsp; có A & nbsp; ____ 27 & nbsp; phương thức đọc & nbsp; Đây là một đối tượng mang các thuộc tính và chúng ta có thể đọc chúng bằng 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 là tùy chọn ngắn. Sau đó, chúng ta có thể truy cập giá trị được cung cấp từ dòng lệnh bằng tùy chọn dài làm khóa (với dấu gạch nối được thay thế bằng một dấu gạch dưới hoặc tùy chọn ngắn một ký tự làm phím nếu chúng ta không có phiên bản dài). Các đối số vị trí của người Viking không phải là tùy chọn và tên của chúng được cung cấp trong chức năng ____ 31 & nbsp; Có nhiều loại đối số. Đố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 hy vọng chúng sẽ mang lại một số dữ liệu. Ở trên, chúng tôi sử dụng ____ 32 & nbsp; để thực hiện tùy chọn đó được đặt thành & nbsp; ________ 33 & nbsp; theo mặc định và chuyển đổi sang & nbsp; Đối với tùy chọn khác, chẳng hạn như & nbsp; ________ 7 ở trên, theo mặc định, nó mong đợi dữ liệu bổ sung sẽ theo dõi nó. Chúng ta có thể yêu cầu một đối số để là một loại cụ thể. Ví dụ: trong tùy chọn
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 bằng thông báo lỗi thông tin:
Làm việc trên dòng lệnhTrao quyền cho tập lệnh Python của bạn với các đối số dòng lệnh có thể đưa nó đến một cấp độ mới của khả năng tái sử dụng. Đầu tiên, hãy để Lôi nhìn vào một ví dụ đơn giản về việc lắp mô hình ARIMA vào 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 tôi có thể sử dụng gói ________ 38 & nbsp; để đọc dữ liệu. Nếu bạn chưa cài đặt nó, bạn có thể sử dụng & nbsp; ________ 39 & nbsp;
Mã cho dữ liệu GDP mà chúng tôi sử dụng là & nbsp; ________ 41; Chúng ta có thể lấy dữ liệu của một quốc gia dưới dạng dữ liệu gấu trúc bằng cách:
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ụ được cung cấp bởi Pandas:
Phù hợp với một mô hình ARIMA và sử dụng mô hình cho các dự đoán là không khó. Sau đây, chúng tôi phù hợp với nó bằng cách sử dụng 40 điểm dữ liệu đầu tiên và dự báo cho tiếp theo 3. Sau đó so sánh dự báo với thực tế về lỗi tương đối:
Đặt tất cả lại với nhau, và sau một chút đánh bóng, sau đây là mã hoàn chỉnh:
Tập lệnh này in đầu ra sau:
Mã trên là 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 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:
Tập lệnh này in đầu ra sau:
Trong lệnh cuối cùng ở trên, chúng tôi vượt qua & nbsp; ____ 42 để áp dụng cùng một mô hình cho dữ liệu GDP của Na Uy (NO) thay vì Thụy Điển (SE). Do đó, không có nguy cơ làm rối mã, chúng tôi đã sử dụng lại mã của chúng tôi cho một bộ dữ liệu khác. 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ột mô hình tốt để dự đoán GDP 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 khởi đầu khác nhau (kể từ năm 1960, 1965, 1970, 1975). Tùy thuộc vào HĐH, bạn có thể xây dựng một vòng lặp trong Linux và Mac bằng cú pháp Bash Shell:
Hoặc, như cú pháp shell cho phép, chúng ta có thể đặt mọi thứ vào một dòng:
Hoặc thậm chí tốt hơn, hãy cung cấp một số thông tin tại mỗi lần lặp của vòng lặp và chúng tôi có được tập lệnh của chúng tôi chạy nhiều lần:
Thực tế & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; dự báo & nbsp; & nbsp; ref error abor
SE 10
2016-12-31 & nbsp; & nbsp; 4415031000000 & nbsp; & nbsp; 4.180213e+12 & nbsp; & nbsp; Nếu bạn sử dụng Windows, bạn có thể sử dụng cú pháp sau trong dấu nhắc lệnh: cho%cin (dkfiisnose) dofor%sin (051015) dopythongdp_arima.py -c $ c -s $ shoặc những điều sau đây trong PowerShell:
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 chúng ta, nhưng đôi khi sẽ dễ dàng hơn nếu chúng ta có thể làm điều đó ở dòng lệnh. Nó có thể thuận tiện hơn khi chúng ta đang khám phá các lựa chọn khác nhau. Hơn nữa, bằng cách lấy vòng lặp bên ngoài mã Python, chúng ta có thể yên tâm rằng mỗi khi chúng ta chạy tập lệnh, nó độc lập vì chúng ta sẽ không chia sẻ bất kỳ biến nào giữa các lần lặp.
Ví dụ, trong Linux, tập lệnh hai dòng trên sẽ hoạt động với shell như sau:
Trong Windows, cú pháp bên trong dấu nhắc lệnh là tương tự:
Trong Windows, cú pháp bên trong dấu nhắc lệnh là tương tự: C: \ MLM> Đặt myValue = xin chào C: \ mlm> python show_env.py 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:
DF ["REL ERRI"] = (df ["dự báo"]-df ["thực tế"])/df ["thực tế"]]
Quốc gia: SE
DF ["REL ERRI"] = (df ["dự báo"]-df ["thực tế"])/df ["thực tế"]]
Bắt đầu: 0 Sau đó, chúng ta có thể chạy mã trên và thu được kết quả tương tự như trước đây. Đối tác JSON rất giống nhau, trong đó chúng tôi sử dụng hàm -6 từ mô -đun ________ 44 & NBSP;Nhập JSON # Tải cấu hình từ tệp JSON với Open ("config.json", "r") ASFP:Và tệp cấu hình JSON, {
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 hiệu quả hơn về tập lệnh Python của chúng tôi. Cụ thể, bạn đã học được:
Nhận một xử lý trên Python để học máy!Tự tin hơn để viết mã trong Python... Từ việc học các thủ thuật trăn thực tế Khám phá cách trong ebook mới của tôi: Python cho học máy Nó cung cấp các hướng dẫn tự học với hàng trăm mã làm việc để trang bị cho bạn các kỹ năng bao gồm: gỡ lỗi, hồ sơ, gõ vịt, trang trí, triển khai, và nhiều hơn nữa ...self-study tutorials with hundreds of working code to equip you with skills including: Cho bạn xem hộp công cụ Python ở mức cao cho các dự án của bạn |