惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
A
About on SuperTechFans
H
Help Net Security
Engineering at Meta
Engineering at Meta
G
Google Developers Blog
aimingoo的专栏
aimingoo的专栏
The Register - Security
The Register - Security
WordPress大学
WordPress大学
MongoDB | Blog
MongoDB | Blog
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
C
Check Point Blog
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
N
Netflix TechBlog - Medium
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - Franky
I
InfoQ
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
Last Week in AI
Last Week in AI
D
Docker
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 叶小钗
Jina AI
Jina AI
F
Fortinet All Blogs
宝玉的分享
宝玉的分享
小众软件
小众软件
有赞技术团队
有赞技术团队
F
Full Disclosure
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Recorded Future
Recorded Future
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
量子位
U
Unit 42
T
The Blog of Author Tim Ferriss
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
O
OpenAI News
S
Secure Thoughts
罗磊的独立博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google Online Security Blog
Google Online Security Blog
Cloudbric
Cloudbric
W
WeLiveSecurity
IT之家
IT之家

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事
使用IPython Notebook来学习编程
2015-05-20 · via 夜行人
  • 如果遇到了生活中不顺利的事情,你也只是需要一个新技巧了

  • 我记下学习和做过的每件事。所以我很轻松可以回忆起自己的各种心理状态

  • 只有你确定了你的目的,你才会应用你所学到的内容去实现你的目的

如果你知道以上三句话出自哪里,你会鄙视我三天的

所以我当然不会说出它们的出处,可偏偏你又会去搜索,我偏偏又喜欢到不得不引用它们orz


近来不少小伙伴有兴趣学编程,时常会被要求给些建议什么的。

从自己的经历说起~
大四去西安玩,途中快读完《Python for Data Analysis》,兴致盎然,不能入睡。书的作者也是Pandas的作者(Pandas是基于Python的结构化数据分析利器)。书中案例的操作性极强,精彩纷呈。当时在车上觉得大致掌握了Pandas。
而后从事的工作与数据分析关系不大。长时间没有接触它,等前段时间再想用它来从log(json格式)中做些分析/统计,却连如何将json数据加载到DataFrame都给忘了orz

不知你是否也有过此类尴尬,以至心有戚戚。对于那些不是日常使用的工具,如何保证学完后,能随时取用当时学会的知识,而不是遗忘之后,每次都从头再学一遍。

当时学会是远远不够的,我们更关心的是需要时拿得出来用。用兵一时

我的学习偏偏又习惯由兴趣驱动,等到想用的时候,兴趣不在这里,让我硬着头皮去再学一遍,恐怕效率是不高的。

于是我琢磨能否尽可能地留存学会的东西,或者复习时能快速进入掌握时的状态,我能想到的,且实践过行之有效的一些方法如下:

  1. 在书籍上批注,这样其实相当于给记忆打快照,日后再翻有助于勾起记忆
  2. 一边学习,一遍在印象笔记做笔记
  3. 学会某些知识后,即时梳理,整理为博客,给身边的小伙伴布道,将学会的东西表达出来,加深理解的同时,也方便自己此后穿梭回这个状态点。

以上几点便是我学习新东西时,习惯采用的方法,知识的留存率的确比采用它们之前提高不少,可也不尽如人意:

  1. 第一点实施起来并不方便,首先你得买纸质书,抛开价格贵,难搬家,易遗失不说,不少资料是根本没有纸质版的。我见过最好的替代方案是将素材拍到Noteself中,而后在其中做笔记,这是最近从一个小伙伴那儿学来的,笔记全部交给Noteself,从不丢失,随时可用,她的技能树极其茂盛,我想Noteself是很重要的原因,所谓善假于物。
  2. 我大约是那种离开印象笔记就生活无法自理的人。但即便如此,它也有不令人满意的地方,首先没法用markdown,这样一来做技术相关的笔记是很不方便的(弥补方法是使用web版本的印象笔记,而后用chrome的markdown here插件转化markdown)。另外学习中做的笔记往往是很碎片的,如果不定期整理/合并很难以复用,可能比资料本身还乱。
  3. 写博客是我现在最喜欢的一种学习方式,如果你还没开始,或不够坚定,建议看看刘未鹏的为什么你应该(从现在开始就)写博客,缺点的话,大约是它不适合容纳细碎的知识。

回到我们的编程话题。以上几点适用于大多数的学习,针对Python编程,我最近找到更好的方法,用了几天,觉得效率简直飞起。分享过来。

杀器就是IPython Notebook

ipython就已经够神器了,Tab键补全、魔术方法、与一堆科学计算库的搭配,以及强大的调试功能。

我此前有写过一篇ipython使用笔记

IPython Notebook是一种基于Web技术的交互式计算文档格式,同时也是计算工具(界面)

notebook的页面都被保存为.ipynb 的类JSON文件格式。这也是 Notebook 最吸引人的地方,其中可以写python代码,可以写markdown文档,可以呈现图表…

你还可以将写好的.ipynb上传到github,分发给小伙伴,拿到.ipynb的小伙伴在IPython Notebook中加载执行它,对你的工作便一目了然,你们近乎共享了编程的过程。你在.ipynb中加上批注和说明之后分发出去,它就成为绝佳的教学和交流的载体!

此外我最近在用它学习Pandas,以便做edX tracking logs的数据分析工作,简直酸爽

pydata-book是《Python for Data Analysis》一书中相应的示例源码。这本书我翻过,所以直接将其源码加载到ipyhton notebook里开撸,偶有不懂,通过交互式探索或是查阅书籍,很快就回忆起来了,而我又可以随时在其中注释批注,用markdown写心得或疑问,而所有这些,都连同可执行的代码保存在.ipynb里,

如果中途我遇到问题,我完全可以将代码连同批注和疑惑发给别人(仅是.ipynb这个文件),对方完全看得到我的思维过程。他也在.ipynb中解答,之后回传给我即可,多便捷的交流过程啊!

##我的Pandas学习环境

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
:::text
cd ~
mkdir pydata
cd pydata
git clone https://github.com/pydata/pydata-book
virtualenv pandas_env
source pandas_env/bin/activate
pip install ipython pyzmq jinja2 tornado jsonschema pylab
vim ~/.zshrc
#我用的是zsh,你用bash的话,对应的是 .bashrc
alias pandas='cd ~/pydata/pydata-book&&source ~/pydata/pandas_env/bin/activate&&ipython notebook'

退出重新进入shell,输入pandas,就进入学习环境了

这样一来,我每次想学习的时候,直接在终端输入pandas就可以开始了!循着上次的注释和笔记,很快就可以进入学习状态

pandas_shell

pandas_web1

pandas_web2

#后记 安装错误:No module named zmq.eventloop

解决方案: sudo pip install pyzmq --upgrade