IPython - Perintah Ajaib

Perintah ajaib atau fungsi ajaib adalah salah satu peningkatan penting yang ditawarkan IPython dibandingkan dengan shell Python standar. Perintah ajaib ini dimaksudkan untuk memecahkan masalah umum dalam analisis data menggunakan Python. Faktanya, mereka mengontrol perilaku IPython itu sendiri.

Perintah ajaib bertindak sebagai fungsi yang nyaman di mana sintaks Python bukan yang paling alami. Mereka berguna untuk menyematkan sintaks python yang tidak valid dalam alur kerjanya.

Jenis Perintah Sihir

Ada dua jenis perintah ajaib -

  • Sihir garis
  • Sihir sel

Magics Garis

Mereka mirip dengan panggilan baris perintah. Mereka mulai dengan% karakter. Sisa baris adalah argumennya diteruskan tanpa tanda kurung atau tanda kutip. Sihir garis dapat digunakan sebagai ekspresi dan nilai kembaliannya dapat ditetapkan ke variabel.

Magics Sel

Mereka memiliki awalan karakter %%. Tidak seperti fungsi sihir garis, mereka dapat beroperasi pada beberapa jalur di bawah panggilan mereka. Mereka sebenarnya dapat membuat modifikasi sewenang-wenang pada masukan yang mereka terima, yang bahkan tidak perlu kode Python yang valid sama sekali. Mereka menerima seluruh blok sebagai satu string.

Untuk mengetahui lebih banyak tentang fungsi sihir, sihir bawaan dan dokumennya, gunakan perintah ajaib. Informasi tentang fungsi sihir tertentu diperoleh dengan%magicfunction?Perintah. Sekarang mari kita gambarkan beberapa perintah ajaib sel dan baris bawaan.

Sihir garis bawaan

%autocall [mode]

Fungsi ajaib ini membuat suatu fungsi dapat dipanggil secara otomatis tanpa harus menggunakan tanda kurung. Dibutuhkan tiga kemungkinan parameter mode:0 (off), 1 (smart) is default atau 2 (always on).

% automagic

Fungsi ajaib dapat dipanggil tanpa harus mengetikkan% awal jika disetel ke 1. Tanpa argumen, fungsi ini akan mengaktifkan / menonaktifkan. Untuk menonaktifkan, setel ke 0.

Contoh berikut menunjukkan fungsi ajaib %pwd (menampilkan direktori kerja sekarang) dipanggil tanpa memimpin% saat% automagic disetel ke 1

%CD

Keajaiban garis ini mengubah direktori saat ini. Perintah ini secara otomatis menyimpan daftar internal direktori yang Anda kunjungi selama sesi IPython Anda, dalam variabel _dh. Anda juga dapat melakukan 'cd - <tab>' untuk melihat riwayat direktori dengan nyaman.

Pemakaian

Perintah% cd dapat digunakan dengan cara berikut -

  • %cd <dir> - Mengubah direktori kerja saat ini menjadi <dir>

  • %cd.. - Mengubah direktori saat ini ke direktori induk

  • %cd - perubahan ke direktori yang terakhir dikunjungi.

% dhist

Perintah ajaib ini mencetak semua direktori yang telah Anda kunjungi di sesi saat ini. Setiap kali perintah% cd digunakan, daftar ini diperbarui di_dh variabel.

% edit

Perintah ajaib ini memanggil editor teks default dari sistem operasi saat ini (Notepad untuk Windows) untuk mengedit skrip Python. Skrip dijalankan saat editor ditutup.

% env

Perintah ajaib ini akan mencantumkan semua variabel lingkungan. Itu juga membaca nilai variabel tertentu atau mengatur nilai variabel lingkungan.

Usage

Perintah% cd dapat digunakan dengan cara berikut -

  • %env - Mencantumkan semua variabel lingkungan

  • %env var - Mendapat nilai untuk var

  • %env var val - Menetapkan nilai untuk var

% gui [GUINAME]

Jika digunakan tanpa argumen, perintah ini mengaktifkan atau menonaktifkan integrasi loop peristiwa GUI IPython. Dengan argumen GUINAME, keajaiban ini menggantikan toolkit GUI default dengan yang ditentukan.

Sr.No. Perintah & Deskripsi
1

%gui wx

aktifkan integrasi loop acara wxPython

2

%gui qt4|qt

aktifkan integrasi loop peristiwa PyQt4

3

%gui qt5

aktifkan integrasi loop peristiwa PyQt5

4

%gui gtk

aktifkan integrasi loop peristiwa PyGTK

5

%gui gtk3

aktifkan integrasi loop peristiwa Gtk3

6

%gui tk

aktifkan integrasi loop peristiwa Tk

7

%gui osx

aktifkan integrasi loop peristiwa Cocoa

8

(membutuhkan% matplotlib 1.1)

9

%gui

nonaktifkan semua integrasi loop peristiwa

% lsmagic

Menampilkan semua fungsi ajaib yang saat ini tersedia

% matplotlib

Fungsi ini mengaktifkan dukungan interaktif matplotlib selama sesi IPython. Namun, itu tidak mengimpor pustaka matplotlib. Toolkit GUI default matplotlib adalah TkAgg. Tetapi Anda dapat secara eksplisit meminta backend GUI yang berbeda. Anda dapat melihat daftar backend yang tersedia seperti yang ditunjukkan -

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

Sesi IPython yang ditampilkan di sini memplot gelombang sinus menggunakan qt toolkit -

Saat menggunakan notebook Jupyter,% matplotlib inline directive menampilkan output plot di browser saja.

%buku catatan

Fungsi ini mengubah riwayat IPython saat ini menjadi file notebook IPython dengan ekstensi ipynb. Sel input dalam contoh sebelumnya disimpan sebagai sine.ipynb

%notebook sine.ipynb

% pinfo

Fungsi ini mirip dengan introspeksi objek? karakter. Untuk mendapatkan informasi tentang suatu objek, gunakan perintah berikut -

%pinfo object

Ini identik dengan object? atau ?object.

% presisi

Fungsi ajaib ini membatasi hasil floating point ke digit tertentu setelah desimal.

% pwd

Fungsi ajaib ini mengembalikan direktori kerja saat ini.

% pylab

Fungsi ini mengisi sesi IPython saat ini dengan matplotlib, dan pustaka numpy.

%penarikan

Saat dijalankan tanpa parameter apa pun, fungsi ini menjalankan perintah sebelumnya.

Perhatikan bahwa di %recall n, nomor di depannya adalah nomor sel masukan. Oleh karena itu, perintah di sel ke-n dipanggil kembali. Anda dapat memanggil kembali perintah di bagian sel dengan menggunakan perintah seperti%recall 1-4. Sel input saat ini diisi dengan sel yang dipanggil kembali dan kursor berkedip sampai tombol enter ditekan.

%Lari

Perintah ini menjalankan skrip Python dari dalam shell IPython.

%waktu

Perintah ini menampilkan waktu yang dibutuhkan oleh lingkungan IPython untuk mengeksekusi ekspresi Python.

% waktu itu

Fungsi ini juga menampilkan waktu yang dibutuhkan oleh lingkungan IPython untuk mengeksekusi ekspresi Python. Eksekusi waktu dari pernyataan atau ekspresi Python menggunakan modul timeit. Fungsi ini dapat digunakan sebagai keajaiban garis dan sel seperti yang dijelaskan di sini -

  • Di line mode Anda dapat mengatur waktu satu baris.

  • Di cell mode, pernyataan di baris pertama digunakan sebagai kode penyiapan dan badan sel diberi waktu. Badan sel memiliki akses ke variabel apa pun yang dibuat dalam kode penyiapan.

%WHO

Garis ajaib ini mencetak semua variabel interaktif, dengan beberapa pemformatan minimal. Jika ada argumen yang diberikan, hanya variabel yang tipenya cocok dengan salah satunya yang akan dicetak.

Fungsi IPython Custom Line Magic

Pustaka inti IPython berisi dekorator register_line_magic. Fungsi yang ditentukan pengguna diubah menjadi fungsi ajaib garis menggunakan dekorator ini.