玩转Python:%matplotlib inline的学习及IPython的妙用

文章目录

      • 0 引言
      • 1 Magic Functions
      • 2 其他IPython的妙用
        • 2.1 %timeit
        • 2.2 %%timeit
        • 2.3 %pwd
        • 2.4 %ls
        • 2.5 %env
        • 2.6 %who 和 %whos
        • 2.7 ! shell_command
        • 2.8 %magic

0 引言

习惯用Jupyter Notebook的原因大概是code和markdown的混合使用特别方便,最近用到一个 %matplotlib inline ,了解了这些Magic Functions的强大之处,更加喜欢IPython这种交互编程方式。

1 Magic Functions

Magic Functions分为两种:line magics 和 cell magics;

前者在前边加%,表示magic只在本行有效;

后者在前边加%%,表示magic在整个单元有效;

而这次用到的是前者,具体是 %matplotlib inline ,该命令可以将matplotlib的图表直接嵌入到Notebook中,或使用指定的界面库显示图表,inline 表示将图表嵌入到Notebook中;

# 内嵌画图
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
# 把图像传入到3D的视图中
ax = Axes3D(fig)

x = np.arange(-4,4,0.25)
y = np.arange(-4,4,0.25)
# 将x,y传入到网格中
X,Y = np.meshgrid(x,y)
R = np.sqrt(2*X**2 + Y**2)
Z = np.sin(R)

# 3D图,rstride和cstride是下图中小方格的大小
ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))
# 等高线图的映射,底盘
ax.contourf(X,Y,Z,zdir='z',offset=-2,cmap='rainbow')
ax.set_zlim(-2,2)

# 已内嵌画图,可省略
# plt.show()
(-2, 2)

玩转Python:%matplotlib inline的学习及IPython的妙用_第1张图片

上例可以在Jupyter Notebook中验证,%matplotlib inline 可以在Ipython编译器里直接使用,功能是可以内嵌绘图,并且可以省略掉plt.show()这一步。

但是要注意:既然是IPython的内置magic函数,那么在Pycharm中是不会支持的。

2 其他IPython的妙用

2.1 %timeit

# 测量单行代码的运行时间
%timeit [i for i in range(10000)]
308 µs ± 4.15 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

2.2 %%timeit

%%timeit # 测量整个单元格代码的运行时间
test = []
for i in range(1000):
    test.append(i)
68.5 µs ± 2.02 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

tip: %%timeit一定要放在第一行,注释放第一行也会UsageError: Line magic function %%timeit not found.

2.3 %pwd

# 显示当前工作目录的路径  -_-有linux内味了-_-
%pwd
'E:\\jupyter'

2.4 %ls

# 显示特定目录下的内容
%ls e:\jupyter\seaborn
 驱动器 E 中的卷是 文档
 卷的序列号是 14F7-4943

 e:\jupyter\seaborn 的目录

2020/11/27  01:18              .
2020/11/27  01:18              ..
2020/11/26  09:47              .ipynb_checkpoints
2020/11/27  01:18           573,223 seaborn.ipynb
2020/11/26  02:30             7,316 test.ipynb
               2 个文件        580,539 字节
               3 个目录 45,481,107,456 可用字节

2.5 %env

# 显示环境变量
%env
{'ALLUSERSPROFILE': 'C:\\ProgramData',
 'APPDATA': 'C:\\Users\\Pluto\\AppData\\Roaming',
 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files',
 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files',
 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files',
 'COMPUTERNAME': 'DESKTOP-QAF2GN4',
 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe',
 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData',
 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer',
 'FPS_BROWSER_USER_PROFILE_STRING': 'Default',
 'HOMEDRIVE': 'C:',
 'HOMEPATH': '\\Users\\Pluto',
 'LOCALAPPDATA': 'C:\\Users\\Pluto\\AppData\\Local',
 'LOGONSERVER': '\\\\DESKTOP-QAF2GN4',
 'MOZ_PLUGIN_PATH': 'D:\\Program Files (x86)\\Foxit Software\\Foxit Reader\\plugins\\',
 'NUMBER_OF_PROCESSORS': '8',
 'ONEDRIVE': 'C:\\Users\\Pluto\\OneDrive',
 'OPENNI2_INCLUDE64': 'D:\\Program Files\\PCL 1.8.1\\3rdParty\\OpenNI2\\Include\\',
 'OPENNI2_LIB64': 'D:\\Program Files\\PCL 1.8.1\\3rdParty\\OpenNI2\\Lib\\',
 'OPENNI2_REDIST64': 'D:\\Program Files\\PCL 1.8.1\\3rdParty\\OpenNI2\\Redist\\',
 'OS': 'Windows_NT',
 'PATH': 
 ......

2.6 %who 和 %whos

a = 0
b = 3.5
c = 'csdn'
# %who 和 %whos都可以显示当前变量,%whos显示的信息更加丰富,当然也可以指定变量
%who
a	 b	 c	 
%whos
Variable   Type     Data/Info
-----------------------------
a          int      0
b          float    3.5
c          str      csdn
%who int
a	 
%whos int
Variable   Type    Data/Info
----------------------------
a          int     0

2.7 ! shell_command

# ! 可以执行shell命令,ping一下csdn的官网
! ping blog.csdn.net
正在 Ping blog.csdn.net [101.200.35.175] 具有 32 字节的数据:
来自 101.200.35.175 的回复: 字节=32 时间=45ms TTL=87
来自 101.200.35.175 的回复: 字节=32 时间=49ms TTL=87
来自 101.200.35.175 的回复: 字节=32 时间=84ms TTL=87
来自 101.200.35.175 的回复: 字节=32 时间=50ms TTL=87

101.200.35.175 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 45ms,最长 = 84ms,平均 = 57ms

2.8 %magic

等等,还有很多IPython的Magic Functions可以 %magic 查看…

%magic

玩转Python:%matplotlib inline的学习及IPython的妙用_第2张图片




须知少时凌云志,曾许人间第一流。

你可能感兴趣的:(Python,IPython,Magic,Functions,matplotlib,Python)