ipynb 文件地址:安装并开始使用
Anaconda 是python的一个发行版,内置了很多其他工具,也免去了这些工具单独安装和配置的麻烦。
简单说就是一个 python语言的使用平台(当然也包括其他语言),不仅包含了python这个编程语言还有所需要的 __集成环境__和python编程所需要的一些 工具(如编辑器),还包含了一些常用的 包(比如科学计算和数据处理的scipy/numpy/pandas,机器学习sklearn等)
就因为 Anaconda 包含python的集成环境和工具以及常用的包,所以下载一键安装后就可以直接使用,跳过了环境配置、编辑器下载、包的下载等步骤,减少安装配置的时间成本!
官网地址:https://www.anaconda.com
官网的下载一般都会非常慢,可以使用镜像地址:Anaconda installer archive 或者清华镜像下载
进入官网地址,点击右上角的下载按钮,下载软件
双击下载exe文件,进入安装环节
一直点击next,如果想修改文件目录就修改一下,注意要d点击 加入环境变量(Advanced options)
点击 install,等待安装完毕!
查看是否安装完成,主要包含这几种工具:
交互界面
点击打开 Anoconda Powershell Prompt 或 Anaconda或者启动windows自带的命令行窗口,输入 __python__即可进入python的交互界面
编辑器
真实情况下很少在“黑窗”里写代码进行交互,更多是在编辑器中进行交互调试,比如打开jupyter notebook或者spyder进行编辑和交互调试
常见的文本编辑器有记事本、notebook++、UE、sublime等,常见的用于python的IDE有pycharm、spyder等
Pycharm 带有一整套可以提升python开发效率的工具,包括语法高亮、自动补全代码、调试、代码跳转等,适合做一些项目性质的开发,比如web开发,以一个项目为单位,可以同时编写html、css、js、py并进行调试
Jupyter notebook 是一个交互式笔记本,可以编写代码、数学方程式、数据可视化、markdown等并且混用,支持多种编程语言(python、R、matlab等),现在很多的资料都是以jupyter notebook格式传播的
点击打开jupyter notebook 或者再cmd中输入 jupyter notebook 都可以打开软件
Spyder 是一款简单的IDE,不仅有matlab般的工作空间可以对数据变量进行操作,也可以如命令行一般进行交互操作
对于数据分析使用jupyter notebook或者spyder就足够了,如果需要增加一些文档或数学公式等说明建议使用jupyter notebook,如果是需要模块化运行的建议使用spyder
在jupyter notebook和spyder 中有很多方便使用的快捷方法,简称魔术方法( 在spyder的交互中也同样可以使用)
无论是什么软件或者编程语言,好的“帮助”可以帮助使用者快速了解相关用法和内容,减少学习成本,提升使用效率
jupyter notebook 快捷键的帮助:ESC+H 就可显示出快捷键查看快捷键的使用方式和功能
jupyter notebook 魔术方法的帮助:%magic 列出所有的魔术方法和详细说明, %lsmagic 列出所有的魔术方法名称
%lsmagic
Available line magics:
%alias %alias_magic %autoawait %autocall %automagic %autosave %bookmark %cd %clear %cls %colors %conda %config %connect_info %copy %ddir %debug %dhist %dirs %doctest_mode %echo %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %macro %magic %matplotlib %mkdir %more %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %pip %popd %pprint %precision %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %ren %rep %rerun %reset %reset_selective %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
Available cell magics:
%%! %%HTML %%SVG %%bash %%capture %%cmd %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile
Automagic is ON, % prefix IS NOT needed for line magics.
jupyter notebook 中Cell有两种:python和markdown
# 标题1
## 标题2
### 标题3
__加粗__
> 引用
- 列表
`print("这是一段Python代码)`
[这是一个链接](www.baidu.com)
| 表头 | 表头 |
| ---- | ---- |
| 单元格 | 单元格 |
| 单元格 | 单元格 |
LaTex 的实现原理跟HTML等其他语言的嵌入类似,Notebook中的Markdown格式解释器中内置了LaTex渲染器,可以将内容进行渲染并达到效果
概率密度函数
f ( x ) = 1 δ 2 π e − ( x − μ ) 2 2 δ 2 f(x) = \frac{1} { \delta \sqrt{2 \pi}} e^ {-\frac{(x-\mu) ^2}{2 \delta ^2}} f(x)=δ2π1e−2δ2(x−μ)2
希腊字母小写/大写 | LaTeX形式 | 希腊字母小写/大写 | LaTeX形式 |
---|---|---|---|
α A | \alpha A | μ N | \mu N |
β B | \beta B | ξ Ξ | \xi \Xi |
γ Γ | \gamma \Gamma | o O | o O |
δ Δ | \delta \ Delta | π Π | \pi \Pi |
ϵ ε E | \epsilon \varepsilon E | ρ ϱ P | \rho \varrho P |
ζ Z | \zeta Z | σ Σ | \sigma \Sigma |
η H | \eta H | τ T | \tau T |
θ ϑ Θ | \theta \vartheta \Theta | υ Υ | \upsilon \Upsilon |
ι I | \iota I | ϕ φ Φ | \phi \varphi \Phi |
κ K | \kappa K | χ X | \chi X |
λ Λ | \lambda \Lambda | ψ Ψ | \psi \Psi |
A m , n = ( a 1 , 1 a 1 , 2 ⋯ a 1 , n a 2 , 1 a 2 , 2 ⋯ a 2 , n ⋮ ⋮ ⋱ ⋮ a m , 1 a m , 2 ⋯ a m , n ) A_{m,n} = \begin{pmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\ a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m,1} & a_{m,2} & \cdots & a_{m,n} \end{pmatrix} Am,n=⎝⎜⎜⎜⎛a1,1a2,1⋮am,1a1,2a2,2⋮am,2⋯⋯⋱⋯a1,na2,n⋮am,n⎠⎟⎟⎟⎞
具体使用是在Markdown中使用$开头和结尾来包括需要渲染的内容
%timeit [i for i in range(1000)]
35.4 µs ± 969 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
%%timeit
[i for i in range(1000)]
36.4 µs ± 1.51 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
%%html
<div>
<p> 这是一个网页</p>
<strong>下面是一个表格</strong>
<table>
<tr>
<th>表头1</th>
<th>表头2</th>
</tr>
<tr>
<td>11</td>
<td>125</td>
</tr>
</div>
%%html
<table>
<tr>
<th>Header 1</th>
<th>Header 2</th>
</tr>
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
<marquee style='width: 100%; color: red;' onMouseOut="this.start()" onMouseOver="this.stop()"><b>到此一游!!!</b></marquee>
<marquee id="affiche" align="left" behavior="scroll" bgcolor="#FF0000" direction="up" height="300" width="200" hspace="50" vspace="20" loop="-1" scrollamount="10" scrolldelay="100" onMouseOut="this.start()" onMouseOver="this.stop()">
我是一个泡泡
</marquee>
%%javascript
alert("这是 javascript 的一个弹窗")
%%SVG
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 450 400" width="500" height="200">
<rect x="80" y="60" width="250" height="250" rx="20" style="fill:red; stroke:black; fill-opacity:0.7" />
<rect x="280" y="110" width="250" height="250" rx="40" style="fill:blue; stroke:black; fill-opacity:0.5;" />
</svg>
%%system
dir
[' 驱动器 D 中的卷是 软件安装',
' 卷的序列号是 6642-B972',
'',
省略
' 17 个文件 2,446,854 字节',
' 3 个目录 49,850,212,352 可用字节']
%%system
ipconfig
['',
'Windows IP 配置',
'',
'',
'以太网适配器 以太网 2:',
'',
' 媒体状态 . . . . . . . . . . . . : 媒体已断开连接',
' 连接特定的 DNS 后缀 . . . . . . . : ',
'',
'以太网适配器 以太网:',
'',
' 媒体状态 . . . . . . . . . . . . : 媒体已断开连接',
' 连接特定的 DNS 后缀 . . . . . . . : ',
'',
'以太网适配器 以太网 3:',
'',
' 媒体状态 . . . . . . . . . . . . : 媒体已断开连接',
' 连接特定的 DNS 后缀 . . . . . . . : ',
'',
'以太网适配器 以太网 4:',
'',
' 媒体状态 . . . . . . . . . . . . : 媒体已断开连接',
' 连接特定的 DNS 后缀 . . . . . . . : ',
'',
'无线局域网适配器 本地连接* 2:',
'',
' 媒体状态 . . . . . . . . . . . . : 媒体已断开连接',
' 连接特定的 DNS 后缀 . . . . . . . : ',
'',
'无线局域网适配器 WLAN:',
省略
' 媒体状态 . . . . . . . . . . . . : 媒体已断开连接',
' 连接特定的 DNS 后缀 . . . . . . . : ']
!ipconfig
Windows IP 配置
以太网适配器 以太网 2:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
以太网适配器 以太网:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
以太网适配器 以太网 3:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
以太网适配器 以太网 4:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
无线局域网适配器 本地连接* 2:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
无线局域网适配器 WLAN:
省略
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
x = [i for i in range(100)]
y = 100+ np.random.randn(100)
plt.plot(x, y)
plt.fill_between(x, y, np.trunc(y.min()), facecolor='g', alpha=0.6)
%%writefile test.txt
这是一个测试文件
第二行
%%writefile test.py
while True:
user = input("用户名:")
pd = input("密码:")
print("请确认您输入的用户名:", user)
yn = input("请确认(y|n):")
if yn == 'y':
break
print("您此次登录的用户名是:", user)
!python test.py
%%system
python test.py
['用户名:Traceback (most recent call last):',
' File "test.py", line 2, in ',
' user = input("用户名:")',
'EOFError: EOF when reading a line']
%run test.py
用户名:wfxu
密码:`11
请确认您输入的用户名: wfxu
请确认(y|n):y
您此次登录的用户名是: wfxu
只有 %run 可以运行这个py文件,有可能notebook渲染器不支持input函数
%%system?
python -m pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user --skip-running-check