Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本

在2012年,现在大家习以为常的许多库,比如pandas、scikit-learn和statsmodels,那时都相对不成熟。在2017年,有日益增长的关于数据科学、数据分析和机器学习的文献资料,补充了先前关于通用科学计算的工作,主要针对计算科学家、物理学家和其它研究领域的专业人员。

学习Python编程成为高效软件工程师的好书确实不少。建议采用IPython控制台与Jupyter笔记本来做样例代码的实验,查看文档了解各种类型、函数和方法。

一、Python解释器

Python是一种解释性语言。Python解释器通过一次执行一条语句来运行程序。在命令行键入python命令可以调用标准交互Python解释器:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第1张图片

>>>是python提示符,其后可以键入表达式或语句。

键入exit()或按组合键Ctrl+Z(Windows系统)返回命令行提示符。

运行python程序很简单,调用python,用一个.py文件作为其第一个参数。

编写一个python程序hello_world.py:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第2张图片

运行上述python程序:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第3张图片

一些Python程序员以这种方式来执行他们的Python代码,而那些做数据分析和科学计算的程序员利用IPython或Jupyter笔记本。

  • IPython 是一个 for Humans 的 Python 交互式 shell,用了它之后你就不想再用自带的 Python shell 了,IPython 支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多实用功能和函数,同时它也是科学计算和交互可视化的最佳平台。
  • Jupyter Notebook 就像一个草稿本,能将文本注释、数学方程、代码和可视化内容全部组合到一个易于共享的文档中,以 Web 页面的方式展示。它是数据分析、机器学习的必备工具。

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第4张图片

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第5张图片

在IPython里,使用%run命令执行指定的Python程序。

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第6张图片

使用Spyder自带的IPython控制台操作:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第7张图片

IPython提示符是In [数字],跟Python提示符>>>相对应。

注意:在IPython里,可以按组合键 + 来清屏。

二、IPython基础

1、运行IPython外壳

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第8张图片

你可以通过键入并按回车来执行任意Python语句。如果仅仅键入一个变量,IPython会呈现这个对象的字符串表示。

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第9张图片

前两行是Python代码语句;第二条语句创建一个名叫data的变量,指向一个新建的Python词典。最后一行在控制台打印变量data的值。

很多种Python对象格式化后更有可读性,或漂亮打印(pretty-printed),与通常用print函数来打印有所不同。

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第10张图片

利用pprint实现漂亮打印效果:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第11张图片

IPython也提供了通过复制粘贴来执行任意代码块或完整Python脚本的手段。当然,你也可以用Jupyter笔记本来处理更大的代码块。

mydict = {'students': [{'name':'Tom', 'age': 18},{'name':'Jerry', 'age': 19}]}
pprint.pprint(mydict)
# 未超长:
{'students': [{'age': 18, 'name': 'Tom'}, {'age': 19, 'name': 'Jerry'}]}
pprint.pprint(mydict, width=20)

将上述代码块全部选中,复制粘贴到IPython控制台,敲回车执行:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第12张图片

step = 0

def move(p1, p2):
	global step
	step = step + 1
	print('Step ' + str(step) + ': ', p1, '->', p2)

def hanoi(n, x, y, z):
	if n == 1:
		move(x, z)
	else:
		hanoi(n-1, x, z, y)
		move(x, z)
		hanoi(n-1, y, x, z)

hanoi(3, 'A', 'B', 'C')

将上述代码块全部选中,复制粘贴到IPython控制台,敲回车执行:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第13张图片

大家可以看到,在IPython里执行代码块还是挺方便的,对于已有的Python程序,简单的复制粘贴敲回车就可以执行。

2、运行Jupyter笔记本

Jupyter项目主要组件之一就是notebook,一种用于代码、文本(有或无标签),数据可视化和其它输出的交互式文档。

Jupyter笔记本与内核交互,内核以任何数量的编程语言实现了Jupyter交互计算协议。Python的Jupyter内核采用IPython系统作为其底层行为。

要启动Jupyter,在终端运行jupyter notebook命令:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第14张图片

在很多平台上,Jupyter会自动在你默认浏览器里打开(除非你启动时带了--no-browser参数)。或者,当你启动了notebook,你可以导航到它给出的http地址,这里是http://localhost:8888/?token=2b9cd7470d199f917f01de16df40907c57c0afc2013e69f6,下图就是在Chrome浏览里Jupyter的登录页面。

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第15张图片

要创建一个笔记本,单击【New】按钮,选择Python 3选项。在代码单元格里键入Python代码,然后按组合键Shift-Enter执行,如下图所示:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第16张图片

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第17张图片

当你保存笔记本,会创建一个扩展名为.ipynb的文件。这是一种自包含文件格式,包含当前在笔记本里的所有内容(包括任何计算的代码输出)。这些东西可以被其他Jupyter用户加载并编辑。为了加载一个已有的笔记本,将文件放在启动笔记本的同一个目录里,或者其子目录里,然后从Jupyter登录页面双击那个文件名。

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第18张图片

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第19张图片

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第20张图片

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第21张图片

刚才,我保存了笔记本,并且重命名为“demo001”,于是在Jupyter当前目录下就有了demo001.ipynb文件。

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第22张图片

在启动Jupyter的目录里保存了demo001.ipynb文件:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第23张图片

内容如下所示:

{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello python world!\n"
     ]
    }
   ],
   "source": [
    "print(\"hello python world!\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "250\n"
     ]
    }
   ],
   "source": [
    "a = 100\n",
    "b = 150\n",
    "sum = a + b\n",
    "print(sum)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}

打开已有的Jupyter笔记本文件:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第24张图片

3、Tab补全功能

跟标准的Python外壳相比,IPython外壳具有tab补全功能,现在很多集成开发环境或交互式计算分析环境都提供了此功能。

定义了两个变量an_apple与an_example,输入an,按tab键,IPython会提示an_apple any an_example Anaconda3。

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第25张图片

在一个对象后面键入英文句点,按tab键会自动提示其方法与属性:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第26张图片

同理,在模块后面键入英文句点,按tab键也会自动提示其函数或常量:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第27张图片

利用tab键也可以自动提示模块的私有属性和方法,但是必须加上一个下划线再按tab键:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第28张图片

结合%run命令,tab键自动补全功能可以为你节省不少敲键次数。

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第29张图片

4、对象自省功能

在变量或方法名后加一个?,会显示一些相关信息:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第30张图片

定义一个函数,添加文档字符串;使用?可以显示文档字符串。

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第31张图片

用??可以显示函数的源代码:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第32张图片

?还可以结合通配符*搜索IPython的命名空间:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第33张图片

注意,python shell不具有对象自省功能:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第34张图片

5、%run命令——运行Python脚本

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第35张图片

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第36张图片

6、%load命令——加载Python脚本

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第37张图片

7、执行剪贴板里的代码

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第38张图片

将上述代码全部选中,然后复制到剪贴板里。

在IPython里,利用魔法命令%paste,可以执行剪贴板里的代码:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第39张图片

8、终端键盘快捷键

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第40张图片

Ctrl-L,清屏快捷键,在前面我们就已经提到过。

9、关于魔法命令

IPython提供了一些特殊命令,不是Python内置的,命令以%打头。

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第41张图片

魔法命令之后加?也可以自省:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第42张图片

利用%automagic命令可以设置自动魔法命令是ON还是OFF,当设置为ON时,魔法命令可以省掉前面的%;当设置为OFF时,魔法命令不能省掉前面的%。默认情况下,automagic是ON状态,如下图所示:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第43张图片

一些魔法命令执行的结果还可以保存到变量里,如下图所示:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第44张图片

但是有些魔法命令执行的结果无法保存到变量里,只能直接显示在屏幕上,如下图所示:

Python数据分析学习笔记02:Python语言基础、IPython与Jupyter笔记本_第45张图片

你可能感兴趣的:(Python编程)