Saya ingin mendapatkan waktu yang dihabiskan untuk eksekusi sel di samping output asli dari sel.
Untuk tujuan ini, saya mencoba %%timeit -r1 -n1
tetapi tidak mengekspos variabel yang didefinisikan dalam sel.
%%time
berfungsi untuk sel yang hanya berisi 1 pernyataan.
In[1]: %%time
1
CPU times: user 4 µs, sys: 0 ns, total: 4 µs
Wall time: 5.96 µs
Out[1]: 1
In[2]: %%time
# Notice there is no out result in this case.
x = 1
x
CPU times: user 3 µs, sys: 0 ns, total: 3 µs
Wall time: 5.96 µs
Apa cara terbaik untuk melakukannya?
Memperbarui
Saya telah menggunakan Execute Time di Nbextension untuk beberapa waktu sekarang. Sangat bagus.
python
ipython
ipython-notebook
jupyter
colinfang
sumber
sumber
x
garis tampilan di sel berikutnya?Jawaban:
Gunakan sihir sel dan proyek ini di github oleh Phillip Cloud:
Muat dengan meletakkan ini di bagian atas buku catatan Anda atau taruh di file konfigurasi Anda jika Anda selalu ingin memuatnya secara default:
Jika dimuat, setiap output dari eksekusi sel selanjutnya akan menyertakan waktu dalam menit dan detik yang diperlukan untuk menjalankannya.
sumber
pip install ipython-autotime
%%time
berfungsi bahkan ketika pernyataan terakhir tidakprint
.Satu-satunya cara saya menemukan untuk mengatasi masalah ini adalah dengan mengeksekusi pernyataan terakhir dengan cetak.
Jangan lupa bahwa sihir sel dimulai dengan
%%
dan sihir garis dimulai dengan%
.Perhatikan bahwa setiap perubahan yang dilakukan di dalam sel tidak dipertimbangkan dalam sel berikutnya, sesuatu yang kontra intuitif ketika ada pipa:
sumber
%%time
dana=1
tetapi sel ke-2 tidak tahu apaa
itu?%time
dan%timeit
sekarang menjadi bagian dari perintah sihir bawaan ipythonsumber
Cara yang lebih mudah adalah dengan menggunakan plugin ExecuteTime dalam paket jupyter_contrib_nbextensions.
sumber
Saya hanya menambahkan
%%time
di awal sel dan mendapatkan waktu. Anda dapat menggunakan hal yang sama pada gugus Jupyter Spark / lingkungan Virtual menggunakan hal yang sama. Cukup tambahkan%%time
di bagian atas sel dan Anda akan mendapatkan hasilnya. Pada kluster percikan menggunakan Jupyter, saya menambahkan ke bagian atas sel dan saya mendapatkan output seperti di bawah ini: -sumber
sumber
Anda dapat menggunakan
timeit
fungsi ajaib untuk itu.Atau di sel
Periksa lebih banyak fungsi IPython magic di https://nbviewer.jupyter.org/github/ipython/ipython/blob/1.x/examples/notebooks/Cell%20Magics.ipynb
sumber
Ini tidak persis indah tetapi tanpa perangkat lunak tambahan
Maka Anda dapat menjalankannya seperti:
sumber
Kadang-kadang format berbeda dalam sel saat menggunakan
print(res)
, tetapi jupyter / ipython datang dengandisplay
. Lihat contoh perbedaan pemformatan menggunakan panda di bawah ini.The
display
pernyataan dapat melestarikan format.sumber
Anda mungkin juga ingin melihat perintah sihir profil python
%prun
yang memberikan sesuatu seperti -kemudian
akan kembali
Saya merasa berguna ketika bekerja dengan potongan kode besar.
sumber
Ketika dalam kesulitan apa artinya apa:
?%timeit
atau??timeit
Untuk mendapatkan detailnya:
sumber
Jika Anda ingin mencetak waktu eksekusi sel dinding di sini adalah trik, gunakan
tetapi di sini pastikan bahwa, %% time adalah fungsi ajaib, jadi letakkan di baris pertama dalam kode Anda .
jika Anda meletakkannya setelah beberapa baris kode Anda itu akan memberi Anda kesalahan penggunaan dan tidak akan bekerja.
sumber