IPython - Lệnh ma thuật

Lệnh ma thuật hoặc hàm ma thuật là một trong những cải tiến quan trọng mà IPython cung cấp so với trình bao Python tiêu chuẩn. Các lệnh ma thuật này nhằm giải quyết các vấn đề phổ biến trong phân tích dữ liệu bằng Python. Trên thực tế, chúng kiểm soát hành vi của chính IPython.

Các lệnh ma thuật hoạt động như các hàm thuận tiện trong đó cú pháp Python không phải là một trong những hàm tự nhiên nhất. Chúng rất hữu ích để nhúng cú pháp python không hợp lệ trong luồng công việc của chúng.

Các loại lệnh ma thuật

Có hai loại lệnh ma thuật -

  • Phép thuật dòng
  • Phép thuật tế bào

Phép thuật dòng

Chúng tương tự như các cuộc gọi dòng lệnh. Chúng bắt đầu bằng ký tự%. Phần còn lại của dòng là đối số của nó được truyền mà không có dấu ngoặc đơn hoặc dấu ngoặc kép. Phép thuật dòng có thể được dùng làm biểu thức và giá trị trả về của chúng có thể được gán cho biến.

Cell Magics

Chúng có tiền tố %% ký tự. Không giống như các hàm ma thuật dòng, chúng có thể hoạt động trên nhiều dòng bên dưới lệnh gọi của chúng. Trên thực tế, họ có thể thực hiện các sửa đổi tùy ý đối với đầu vào mà họ nhận được, thậm chí không cần phải là mã Python hợp lệ. Họ nhận toàn bộ khối dưới dạng một chuỗi duy nhất.

Để biết thêm về các chức năng phép thuật, phép thuật tích hợp và chuỗi tài liệu của chúng, hãy sử dụng lệnh phép thuật. Thông tin của một chức năng ma thuật cụ thể được lấy theo%magicfunction?Chỉ huy. Bây giờ chúng ta hãy mô tả một số lệnh ma thuật dòng và ô tích hợp sẵn.

Phép thuật dòng tích hợp

%autocall [mode]

Hàm ma thuật này làm cho một hàm có thể gọi tự động mà không cần phải sử dụng dấu ngoặc đơn. Nó có ba tham số chế độ có thể có:0 (off), 1 (smart) is default hoặc là 2 (always on).

% automagic

Các hàm ma thuật có thể được gọi mà không cần phải nhập% ban đầu nếu được đặt thành 1. Không có đối số, nó sẽ bật / tắt. Để hủy kích hoạt, hãy đặt thành 0.

Ví dụ sau đây cho thấy một hàm ma thuật %pwd (hiển thị thư mục làm việc hiện tại) được gọi mà không có% đứng đầu khi% automagic được đặt thành 1

%CD

Phép thuật dòng này thay đổi thư mục hiện tại. Lệnh này tự động duy trì danh sách thư mục nội bộ mà bạn truy cập trong phiên IPython, trong biến _dh. Bạn cũng có thể thực hiện 'cd - <tab>' để xem lịch sử thư mục một cách thuận tiện.

Sử dụng

Lệnh% cd có thể được sử dụng theo những cách sau:

  • %cd <dir> - Thay đổi thư mục làm việc hiện tại thành <dir>

  • %cd.. - Thay đổi thư mục hiện tại thành thư mục mẹ

  • %cd - các thay đổi đối với thư mục được truy cập lần cuối.

% dhist

Lệnh ma thuật này in tất cả các thư mục bạn đã truy cập trong phiên hiện tại. Mỗi khi lệnh% cd được sử dụng, danh sách này được cập nhật trong_dh Biến đổi.

%biên tập

Lệnh ma thuật này yêu cầu trình soạn thảo văn bản mặc định của hệ điều hành hiện tại (Notepad cho Windows) để chỉnh sửa tập lệnh Python. Tập lệnh được thực thi khi trình chỉnh sửa được đóng lại.

% env

Lệnh ma thuật này sẽ liệt kê tất cả các biến môi trường. Nó cũng đọc giá trị của biến cụ thể hoặc đặt giá trị của biến môi trường.

Usage

Lệnh% cd có thể được sử dụng theo những cách sau:

  • %env - Liệt kê tất cả các biến môi trường

  • %env var - Nhận giá trị cho var

  • %env var val - Đặt giá trị cho var

% gui [GUINAME]

Khi được sử dụng mà không có đối số, lệnh này sẽ bật hoặc tắt tích hợp vòng lặp sự kiện IPython GUI. Với đối số GUINAME, phép thuật này thay thế bộ công cụ GUI mặc định bằng bộ công cụ được chỉ định.

Sr.No. Lệnh & Mô tả
1

%gui wx

kích hoạt tích hợp vòng lặp sự kiện wxPython

2

%gui qt4|qt

kích hoạt tích hợp vòng lặp sự kiện PyQt4

3

%gui qt5

kích hoạt tích hợp vòng lặp sự kiện PyQt5

4

%gui gtk

bật tích hợp vòng lặp sự kiện PyGTK

5

%gui gtk3

bật tích hợp vòng lặp sự kiện Gtk3

6

%gui tk

kích hoạt tích hợp vòng lặp sự kiện Tk

7

%gui osx

kích hoạt tích hợp vòng lặp sự kiện Cocoa

số 8

(yêu cầu% matplotlib 1.1)

9

%gui

tắt tất cả tích hợp vòng lặp sự kiện

% lsmagic

Hiển thị tất cả các chức năng ma thuật hiện có

% matplotlib

Chức năng này kích hoạt hỗ trợ tương tác matplotlib trong một phiên IPython. Tuy nhiên, nó không nhập thư viện matplotlib. Bộ công cụ GUI mặc định của matplotlib là TkAgg. Nhưng bạn có thể yêu cầu rõ ràng một phụ trợ GUI khác. Bạn có thể xem danh sách các phần mềm phụ trợ có sẵn như được hiển thị:

In [4]: %matplotlib --list
Available matplotlib backends: 
['osx', 'qt4', 'qt5', 'gtk3', 'notebook', 'wx', 'qt', 'nbagg','gtk', 'tk', 'inline']

Phiên IPython được hiển thị ở đây vẽ biểu đồ sóng sin bằng cách sử dụng qt bộ công cụ -

Trong khi sử dụng sổ ghi chép Jupyter, chỉ thị nội tuyến% matplotlib chỉ hiển thị kết quả âm mưu trong trình duyệt.

%sổ tay

Chức năng này chuyển đổi lịch sử IPython hiện tại thành tệp sổ ghi chép IPython có phần mở rộng ipynb. Các ô đầu vào trong ví dụ trước được lưu dưới dạng sine.ipynb

%notebook sine.ipynb

% pinfo

Chức năng này tương tự như xem xét nội tâm đối tượng? tính cách. Để lấy thông tin về một đối tượng, hãy sử dụng lệnh sau:

%pinfo object

Điều này đồng nghĩa với object? hoặc là ?object.

%độ chính xác

Hàm ma thuật này hạn chế một kết quả dấu phẩy động đối với các chữ số được chỉ định sau số thập phân.

% pwd

Hàm ma thuật này trả về thư mục làm việc hiện tại.

% pylab

Hàm này điền phiên IPython hiện tại với matplotlib và thư viện numpy.

%Gợi lại

Khi được thực thi mà không có bất kỳ tham số nào, hàm này sẽ thực hiện lệnh trước đó.

Lưu ý rằng trong %recall n, số phía trước nó là số ô đầu vào. Do đó lệnh trong ô thứ n được gọi lại. Bạn có thể gọi lại các lệnh trong phần ô bằng cách sử dụng lệnh như%recall 1-4. Ô nhập hiện tại được điền bằng ô nhớ lại và con trỏ nhấp nháy cho đến khi nhấn phím enter.

%chạy

Lệnh này chạy một tập lệnh Python từ bên trong trình bao IPython.

%thời gian

Lệnh này hiển thị thời gian theo yêu cầu của môi trường IPython để thực thi một biểu thức Python.

% thời gian

Hàm này cũng hiển thị thời gian theo yêu cầu của môi trường IPython để thực thi một biểu thức Python. Thực thi thời gian của một câu lệnh hoặc biểu thức Python sử dụng mô-đun timeit. Chức năng này có thể được sử dụng như một phép thuật dòng và ô như được giải thích ở đây -

  • Trong line mode bạn có thể tính thời gian một dòng.

  • Trong cell mode, câu lệnh trong dòng đầu tiên được sử dụng làm mã thiết lập và phần thân của ô được tính thời gian. Phần thân ô có quyền truy cập vào bất kỳ biến nào được tạo trong mã thiết lập.

%WHO

Phép thuật dòng này in tất cả các biến tương tác, với một số định dạng tối thiểu. Nếu bất kỳ đối số nào được đưa ra, chỉ những biến có kiểu khớp với một trong những đối số này mới được in.

Chức năng Magic Line tùy chỉnh của IPython

Thư viện lõi của IPython chứa bộ trang trí register_line_magic. Một chức năng do người dùng xác định sẽ được chuyển đổi thành một chức năng ma thuật dòng bằng cách sử dụng trình trang trí này.