I Pythonの愛好家、6ヶ月のPythonを学びます。私はIPythonと接触するように起こっヶ月前に、共有への皆のために大きく、ここメリット
001 IPythonは何ですか
IPython
(対話のpython)、インタラクティブな使いやすいはるかにデフォルトのpythonシェルよりパイソン、変数自動補完のためのサポート、自動インデントされ、機能や便利な機能の多くを構築しました。
そこIPythonを使用するには、2つの方法があり、IPython shell
そしてjupyter notebook
この記事はjupyterノートブック、IPythonが密接に接続されているJupyter焦点を当て、(http://jupyter.org)プロジェクト。
010なぜjupyterノート
Jupyterノートブックは、IPythonシェルブラウザベースのインターフェイスであるような添えものの様々な提供:内蔵値下げフォーマット、可視化を...... Pythonコードを実行されますが、学習Pythonのラップトップはまた、あなたを共有することができます良い選択であるとことができるだけでなく、ノートブック(.ipynbファイル)、あなたの小さな友人はまた、自分のノートブック型コンピュータ上でコードを実行できるように
すべてのすべてを、jupyterノートフレンドリーなインターフェース、強力な
011.jupyterノートブックのインストール
jupyterインストール方法は、二つあり、一つは直接CMDに入力されます。
pip install jupyter
第二は、アナコンダのインストールをある私の推奨される方法である
アナコンダをインストールしていない場合は、初段https://www.anaconda.com入力CMDの完了後にインストールパッケージアナコンダ、アナコンダをダウンロード
conda install jupyter
この方法では、インストール上のjuyterに成功しました
100.jupyterノートブックの起動やファイルの操作
jupyterノートブックを開始するには、CMDで次のコマンドを入力し、それがデフォルトブラウザで開きます
jupyter noterbook
次のようにオープンなインタフェースは、後
- jupyterノートデフォルトのパスは、管理者管理者(DBA)がフォルダでは、デフォルトのパスを変更することができ、ここでは紹介しません
- jupyterのファイル操作が同時に動作し、フォルダのブラウザインタフェース表面することができ、同時に表示されます、あなたに新しいファイルブラウザインタフェースの下にいるjupyterフォルダを意味し、。あなたが開く必要がある場合は
.ipynb
、ファイルを、あなたは以下のフォルダ.ipynb jupyterに直接コピーすることができます。もちろん、あなたもクリックすることができUpload
ますが、jupyterノートブックファイルをアップロードするを選択します - クリック
Logout
またはCMDと出口jupyterにブラウザを閉じます
101.jupyterノートブックインタフェースの動作と共通のキーボードショートカット
行く、仕事、おなじみのjupyter操作やショートカットキー、使用IPython自然便利速めることを言ったよう
クリックNew
(のpythonがここアナコンダ3は、Pythonインタプリタである)ドロップダウンボックスで、あなたは、Python 3をクリックして作成することができます.ipynb
ファイル
-
上記をクリックし
Untitled
、ファイル名を変更することができます -
クリックし
代码
、ドロップダウンボックス、あなたが達成することができますmarkdown
変換フォーマットとコードのフォーマットを -
クリックして、
Insert
コードの前後に行を挿入するかを選択できます -
jupyterノートブックは1であり、2つのモードがあります
编辑模式
によると、Enter
コードの行を示し、この時間枠が入力され、このモード绿色
は、コード、削除、実行およびその他の操作の内部行をインデントすることができ
、他のがあると命令模式
、編集モードであれば、 Enterキーを押してEsc
コマンドモードに入り、コードの行を示し、この時間枠蓝色
-
jupyter一般的に使用されるショートカットキー
- 编辑模式
- Shift-Enter: 运行本单元,选中下一代码行(若下面没有单元,则新建一个单元)
- Ctrl-Enter: 运行本单元
- Alt-Enter: 运行本单元,在下面插入一单元
- 命令模式
- 数字1~6: 设定1到6级标题
- A: 在上方插入新单元
- B: 在下方插入新单元
- 连续两下D: 删除选中的单元
- Shift-K: 扩大选中上方单元
- Shift-J: 扩大选中下方单元
- shift-M:合并单元
更多快捷键等待你的探索
- 编辑模式
110.IPython 的获取与探索功能
IPython 和 Jupyter 最大的优势之一就是能方便我们搜索函数和文档的功能,帮助我们高效完成工作
- 使用
?
来获取文档
我们传统的获取python文档是使用help()
>>>help(list)
Help on class list in module builtins:
class list(object)
| list(iterable=(), /)
|
| Built-in mutable sequence.
|
| If no argument is given, the constructor creates a new empty list.
| The argument must be an iterable if specified.
|
| Methods defined here:
|
| __add__(self, value, /)
| Return self+value.
(………………………………………………………………)
在IPython中我们可以使用list?
,显示出的信息更加简明扼要
In[1]:list?
Init signature: list(iterable=(), /)
Docstring:
Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list.
The argument must be an iterable if specified.
Type: type
Subclasses: _HashedSeq, StackSummary, SList, _ImmutableLineList, FormattedText, NodeList, _ExplodedList, Stack, _Accumulator, _ymd, ...
?
也同样适应于对象的方法
,甚至于对象本身
In [2]: L=[1,2,3]
In [3]: L.append?
Signature: L.append(object, /)
Docstring: Append object to the end of the list.
Type: builtin_function_or_method
In [4]: L?
Type: list
String form: [1, 2, 3]
Length: 3
Docstring:
Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list.
The argument must be an iterable if specified.
- 使用
TAB
探索模块
L后面加上.
再按Tab
键即可看到该对象的所有方法
In [5]: L.
append() count insert reverse
clear extend pop sort
copy index remove
也可以输入方法的前面几个字母以缩小搜索范围,若只有一个选项满足搜索条件,则Tab自动补全方法
In [6]: L.c
clear()
copy()
count()
同样的道理我们也可以应用在导入模块时
In [9]: import ma
macpath man math
mailbox markupsafe matplotlib
mailcap marshal
熟练使用Tab自动补全可以有效提高工作效率
111.IPython的魔法命令
IPython的魔法命令显著地将IPython于pyhton区别开来,也彰显了Interactive的内涵
魔法命令分为行魔法(line magic)和单元魔法(cell magic)
- 行魔法:前缀是一个
%
,只作用于单行 - 单元魔法:前缀是
%%
,作用于整个单元,方便多行输入
常用的魔法命令有%paste
、%cpaste
、%run
、%timeit
这里我只介绍%timeit,其他魔法命令可以使用%lsmagic
和?
探索
%timeit,它会自动计算接下来一行的 Python 语句的执行时
间。例如,我们可能想了解生成列表所用的时间:
In [10]: %timeit L = [n ** 2 for n in range(1000)]
375 µs ± 3.07 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
%timeit 的好处是,它会自动多次执行简短的命令,以获得更稳定的结果。对于多行语句,可以加入第二个 % 符号将其转变成单元魔法,以处理多行输入。例如,下面是 for 循环的同等结构:
In[11]: %%timeit
...: L=[]
...: for i in range(1000):
...: L.append(i**2)
...:
414 µs ± 5.02 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
可以看出使用range()生成列表比用for循环快一些
学习IPython网站:
http://ipython.org
http://github.com/ipython/ipython/wiki/A-gallery-of-interestingIPython-Notebooks/
http://nbviewer.ipython.org