Python编程神器Jupyter Notebook使用的28个秘诀(1)

由于Jupyter是基于IPython内核的,所以Jupyter可以使用IPython内核中的Magics命令。

可以使用%lsmagic查看所有的magic命令。

  • %env,设置环境变量

你可以管理notebook的环境变量,而无需重新启动Jupyter服务器进程。有些库(比如theano)使用环境变量来控制行为,%env是最方便的方法。

Running %env without any arguments

lists all environment variables

The line below sets the environment

variable

%env OMP_NUM_THREADS%env OMP_NUM_THREADS=4

output

env: OMP_NUM_THREADS=4

  • %run,执行python代码

有时候你有一份已经写好的*.py文件,你可以在Jupyter中执行它。

this will execute and show the output from

all code cells of the specified notebook

%run ./two-histograms.ipynb

  • %load,导入外部脚本。

有时候你想运行一个外部脚本,但是想用Jupyter加一些代码,那么你可以先把它load进Jupyter。

你有一个hello_world.py文件

内容是if name == “main”: print(“Hello World!”)

在Jupyter中先用%load载入

%load ./hello_world.py

运行%load ./hello_world.py命令后,在你的cell中就出现以下几行代码(你执行的%run语句会显示已经注释)

%load ./hello_world.py

if name == “main”:

print(“Hello World!”)

  • %store,在notebook之间传递变量。

在notebook A 中

data = ‘this is the string I want to pass to different notebook’

%store data

del data # This has deleted the variable

在notebook B 中

%store -r data

print(data) # 显示this is the string I want to pass to different notebook

  • %who,显示所有的变量

某个cell中有以下四行代码

one = “for the money”

two = “for the show”

three = “to get ready now go cat go”

%who str

输出为

one three two

  • %%time%timeit

%%time将提供代码单次运行的信息,%%timeit将默认运行你的代码100,000次,提供最快运行三次的平均结果。

  • %%writefilepycat,导出单元格的内容/显示外部脚本的内容

%%writefile保存cell内容到外部文件。%pycat正好相反。

  • %prun,显示程序中每个函数的调用信息

  • %pdb,代码调试

  • 为视网膜(Retina)屏输出高分辨率图像

常规图像

x = range(1000)

y = [i ** 2 for i in x]

plt.plot(x,y)

plt.show();

视网膜(Retina)图像

%config InlineBackend.figure_format =‘retina’

plt.plot(x,y)

plt.show();

16.在函数末尾加入分号可以抑制输出

在函数末尾加分号可以抑制函数的输出。

17.执行shell命令

在shell命令前面加

一些例子

!ls *.csv

!pip install numpy

!pip list | grep pandas

18.在markdown cell 中书写LaTeX时,它会被 MathJax 渲染成一个公式

19.在一个notebook中运行多种kernel的代码

如果想要的话,你可以在一个notebook中运行多种kernel的代码

在每个cell的开头使用相关的魔法命令来声明你想使用的 kernel。

支持:%%bash, %%HTML, %%python2, %%python3, %%ruby, %%perl

%%bash

for i in {1…5}

do

echo “i is $i”

done

20.为Jupyter安装其他的kernel

Jupyter其实不止可以用于python编程,安装一个R内核它就可以用于R语言编程。

通过Anaconda安装

conda install -c r r-essentials

手动安装

你需要先从https://cloud.r-project.org下载安装R

然后在R控制台下运行以下代码

install.packages(c(‘repr’, ‘IRdisplay’, ‘crayon’, ‘pbdZMQ’, ‘devtools’))

devtools::install_github(‘IRkernel/IRkernel’)

IRkernel::installspec() # to register the kernel in the current R installation

21.在同一个notebook中运行R和Python

你可以安装rpy2用pip install rpy2

%load_ext rpy2.ipython

%R require(ggplot2)

array([1], dtype=int32)

import pandas as pd

df = pd.DataFrame({

‘Letter’: [‘a’, ‘a’, ‘a’, ‘b’, ‘b’, ‘b’, ‘c’, ‘c’, ‘c’],

‘X’: [4, 3, 5, 2, 1, 7, 7, 5, 9],

‘Y’: [0, 4, 3, 6, 7, 10, 11, 9, 13],

‘Z’: [1, 2, 3, 1, 2, 3, 1, 2, 3]

})

%%R -i df

ggplot(data = df) + geom_point(aes(x = X, y= Y, color = Letter, size = Z))

22.用其他语言来写函数

有时numpy的速度不够快,我需要写一些快速的代码。

原则上,可以在动态库中编译函数并编写python包装器…

但是把这个无聊的部分做完会更好,对吧?

您可以用cython或fortran编写函数,并直接从python代码中使用这些函数。

首先你需要安装cython:

!pip install cython fortran-magic

%load_ext Cython

%%cython

def myltiply_by_2(float x):

return 2.0 * x

myltiply_by_2(23.)

就个人而言我建议使用fortran:

%load_ext fortranmagic

%%fortran

subroutine compute_fortran(x, y, z)

real, intent(in) :: x(😃, y(😃

real, intent(out) :: z(size(x, 1))

z = sin(x + y)

end subroutine compute_fortran

compute_fortran([1, 2, 3], [4, 5, 6])

做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的Python干货,对我来说这些东西确实已经用不到了,但对于准备自学Python的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。

别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。

我先来介绍一下这些东西怎么用,文末抱走。


(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

(4)200多本电子书

这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。

基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。

(5)Python知识点汇总

知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。

在这里插入图片描述

(6)其他资料

还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。

在这里插入图片描述

这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值