Jupyter Notebook初学者介绍
机器学习和人工智能已经成为科技界的新热词;几乎每个人都意识到这个领域的重要性。
数据科学家会同意,在某个时间点,你几乎无法不使用Jupyter笔记本,至少大部分时间是这样。许多AI/ML工程师已经采用了使用Jupyter Notebook来编写和测试算法/模型的工具。
那么Jupyter是什么?为什么它被称为笔记本?
根据维基百科,笔记本是一本或一堆纸制成的书或装订本,通常带有线条,用于多种用途,如记录笔记或备忘录、书写、绘画或剪贴簿。
所以基本上,我们可以说笔记本是用来使用文本、图表、绘图、图片、方程、表格甚至图表来表达特定的上下文、想法或知识。
那么为什么Jupyter被称为笔记本?
因为它确实做到了上述所说的!它用于起草文档、代码、文本、图片、方程、绘制图表和可视化甚至绘制表格。
Jupyter Notebook是什么?
Jupyter Notebook 是一个开源的Web应用程序,允许您创建和共享包含实时代码、方程、可视化和叙述文本的文档。它的用途包括数据清洗和转换、数值模拟、统计建模、数据可视化、机器学习等等。
通常情况下,Jupyter Notebook在Python环境中使用。它们具有非常交互式的输出,并且可以像普通笔记本一样轻松共享。
Jupyter Notebook可以用于什么?
编写多种语言。
Jupyter系统支持100多种编程语言(在Jupyter生态系统中称为“内核”),包括Python、Java、R、Julia、Matlab、Octave、Scheme、Processing、Scala等等。您可以与他人分享在Notebook中编写的代码。
以下是可以在Jupyter笔记本中编写的几种语言。
Python
在可以使用Jupyter编写的所有语言中,Python是最受欢迎的。几乎每个在Jupyter环境中编写代码的人都会用到 Python。默认情况下,Jupyter在其环境中支持Python,无需使用特殊的魔术命令。
def hello_world():
print("Hello world!!!")
hello_world()
输出将是:
Hello world!!!
JavaScript
JavaScript被广泛用于Web开发,也可以在Jupyter中编写。与Python不同,JavaScript不是默认支持的。您需要使用特定的命令告诉该单元格您正在运行的是JavaScript代码。这些命令通常称为魔术命令。对于JavaScript,该命令是%%javascript
。
与Python不同,Jupyter Notebook中可以运行的JavaScript代码有一定的限制。
%%javascript
const text = "hello world"
alert(text)
Java
它允许集成Java – 编程语言。可以按照一组安装说明 here 来安装这样的内核。安装完成后,在Linux上的Jupyter终端中运行以下命令。
jupyter console --kernel=java
Jupyter console 5.1.0
Java 9.0.4+11 :: IJava kernel 1.1.0-SNAPSHOT
Protocol v5.0 implementation by jupyter-jvm-basekernel 2.2.1-SNAPSHOT
In [1]:
Matlab
Matlab是高性能的技术计算语言;它将计算、可视化和编程集成在一个易于使用的环境中,其中问题和解决方案以熟悉的数学符号表示。
要在Jupyter Notebook中使用Matlab,首先需要安装Jupyter-Matlab。我们首先需要做的是创建一个虚拟环境。
在Windows上打开Jupyter提示符,或者在Linux上打开终端,然后输入以下命令:
conda create -vv -n jmatlab python=3.5 jupyter
确保您仍然在这个终端中,然后输入以下代码:
source activate jmatlab
然后安装Python的Matlab内核
pip install matlab_kernal
python -m matlab_kernel install
检查内核是否正确安装
jupyter kernelspec list
找到您的MATLAB目录。 “/Applications/MATLAB_R2017a.app”。
进入”extern/engines/python”子目录并安装Python引擎。
cd “/Applications/MATLAB_R2017a.app/extern/engines/python”
python setup.py install
启动Jupyter笔记本
cd your_working_directory
jupyter notebook
启动后,现在应该有Matlab和Python的选项。
标记
当涉及到编写Markdown时,Jupyter笔记本非常方便,当您想要对某段代码进行详细的解释、编写文档或一份特定数据集的词典时,这非常有用。
在笔记本中键入以下代码。
* [Pandas](#pandas),
用于数据分析
* [Numpy](#numpy),
用于数值分析
* [Matplotlib](#matplotlib),
用于数据可视化
输出应该如下所示;
图片
Bash脚本
Jupyter笔记本允许使用bash脚本,使用”%%bash”魔术命令。
为了测试,让我们在当前工作目录中创建一个文件夹。在笔记本单元格中输入以下代码。
%%bash
mkdir Test_Folder
运行代码,现在通过输入以下代码检查您的工作目录
%%bash
ls
您将看到文件夹”Test_Folder”已被添加到其中。您也可以物理地转到该文件夹进行检查。
数据可视化
使用Python库如Matplotlib,您可以在浏览器中运行和显示数据可视化。
让我们尝试使用matplotlib制作一个非常基本的可视化。
我们首先需要导入库
from matplotlib import pyplot as plt
%matplotlib inline
然后输入以下代码
x = [1, 2, 3, 4, 5, 6, 7, 8, 9] y = [11, 12, 13, 14, 15, 16, 17, 18, 19] plt.plot(x, y)
更有趣的是,我们可以进行3D可视化!
我们首先需要导入3D可视化库
from mpl_toolkits import mplot3d
import numpy as np
然后进行3D投影
fig = plt.figure()
ax = plt.axes(projection='3d')
我们的输出应该是这样的
图片
现在,运行以下脚本。
def f(x, y):
return np.sin(np.sqrt(x ** 2 + y ** 2))
x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
X, Y = np.meshgrid(x, y)
Z = f(X, Y)
ax = plt.axes(projection='3d')
ax.plot_surface(X, Y, Z, rstride=1, cstride=1,
cmap='viridis', edgecolor='none')
ax.set_title(‘surface');
图片
数学和科学符号
我们可以使用LaTeX等工具在Jupyter笔记本中输入数学和科学方程。
LaTeX是一个高质量的排版系统;它包含了为技术和科学文档制作而设计的功能。您可以在此处了解更多关于latex的信息here。让我们尝试运行一些简单的LaTex代码。
输入以下LaTex命令
## $J(theta_0) = frac{1}{2m}sum_{i=0}^{m} (h_theta(x^{(i)}) - y^{(i)})^2$
输出应该是这样的
结论
本文只是涉及了使用Jupyter notebooks可以实现的一小部分内容。您可以在我创建的这个Jupyter笔记本中找到本文中大部分示例here on collaboratory