python数据分析之ipython

在用python进行数据分析的时候,需要提前安装如下几个库:

Numpy:是python进行科学计算的科学包

pandas:提供了能够快速便捷地处理结构化数据的大量数据结构和函数

matplotlib: 看名字和matlab有点像,matplotlib是用于绘制数据图表的python库

ipython:科学计算标准工具集的组成部分,它将其他的东西都联系到了一起。可以算是一个集成开发环境,也算是一个Python shell. 它主要用与交互式数据处理和利用matplotlib对数据进行可视化处理。

Scipy: 专门解决科学计算中的各种标准问题域的包的集合。

安装完上述的包以后,我们首先来了解ipython:

我们通过命令行来启动ipython

[email protected]:/home/zhf/桌面# ipython

Python 2.7.14 (default, Sep 23 2017, 22:06:14)

Type "copyright", "credits" or "license" for more information.

IPython 5.5.0 -- An enhanced Interactive Python.

?         -> Introduction and overview of IPython‘s features.

%quickref -> Quick reference.

help      -> Python‘s own help system.

object?   -> Details about ‘object‘, use ‘object??‘ for extra details.

In [1]:

可以在这里输入任何的python语句,然后按回车就可以执行了。下面的这个例子使用了np.random.randn函数。numpy中有一些产生随机数的函数。其中就包括randn和rand

numpy.random.randn(d0, d1, …, dn)是从标准正态分布中返回一个或多个样本值。 
numpy.random.rand(d0, d1, …, dn)的随机样本位于[0, 1)中。

In [3]: data={i:np.random.randn() for i in range(10)}

In [4]: data

Out[4]:

{0: -0.26372963026186114,

1: 0.9897522050146305,

2: -0.317248416264267,

3: -0.20268379526665642,

4: 0.24959732707744903,

5: -0.606557876097728,

6: -1.4078448883575148,

7: -0.2142476262321556,

8: 0.4230008554551093,

9: -0.011635799533308613

TAB自动化功能:

在shell中输入表达式时,只要按下tab键,当前命令空间中任何与已输入的的字符串相匹配的变量就会被找出来。

In [9]: apple=4

In [10]: appl

apple

apply

不光找出了定义的apple值,还找出了内置对象apply。 还可以在任何对象后面输入一个点号然后按下tab来查找出所有的属性。

In [11]: b=[1,2,3]

In [12]: b.

b.append  b.index   b.remove

b.count   b.insert  b.reverse

b.extend  b.pop     b.sort

同样的也可以应用于模块中。

In [12]: import time

In [13]: time.

time.accept2dyear time.daylight     time.strftime     time.tzname

time.altzone      time.gmtime       time.strptime     time.tzset

time.asctime      time.localtime    time.struct_time

time.clock        time.mktime       time.time

time.ctime        time.sleep        time.timezone

内省

在变量的前面或者后面加上一个?就可以将有关该对象的一些通用信息显示出来:

In [13]: b?

Type:        list

String form: [1, 2, 3]

Length:      3

Docstring:

list() -> new empty list

list(iterable) -> new list initialized from iterable‘s items

这个方法对于函数也是同样适用的。?显示出这段docstring, ??显示出该函数的源代码。

In [14]: def add(a,b):

...:     return a+b

...:

In [15]: add?

Signature: add(a, b)

Docstring: <no docstring>

File:      /home/zhf/桌面/<ipython-input-14-ff991a776e8a>

Type:      function

In [16]: add??

Signature: add(a, b)

Source:

def add(a,b):

return a+b

File:      /home/zhf/桌面/<ipython-input-14-ff991a776e8a>

Type:      function

%run命令

在ipython中,所有文件都可以通过%run命令当做python程序来运行。假设有test1.py文件有如下脚本

def add_function():

a=3

b=4

return a+b

result=add_function()

In [18]: %run /home/zhf/py_prj/test1.py

In [19]: result

Out[19]: 7

通过%run命令就可以直接执行。如果在执行过程中发现有错误,ipython默认会输出整个调用栈跟踪traceback

ipython和操作系统的交互也做得比较好。下面列出调用shell命令的魔术命令及语法

!cmd:在系统shell中执行cmd

In [29]: !ls -al

总用量 28

drwxr-xr-x  2 zhf zhf 4096 12月  4 08:13 .

drwxr-xr-x 35 zhf zhf 4096 1月  15 16:48 ..

-rwxr-xr-x  1 zhf zhf 2183 11月 28 20:51 mpv.desktop

-rwxr-xr-x  1 zhf zhf  309 11月 28 22:37 Pycharm.desktop

-rwxr-xr-x  1 zhf zhf  428 11月 28 20:51 ubuntu-kylin-software-center.desktop

-rwxr-xr-x  1 zhf zhf  714 12月  4 08:13 wps-office-et.desktop

-rwxr-xr-x  1 zhf zhf  757 12月  4 08:13 wps-office-wps.desktop

%alias: 为系统shell命令定义别名

%bookmark: 使用ipython的目录书签系统。在实际使用中,想快速的跳到某个目录,可以使用书签系统。下面的例子使用py_prj作为一个书签表示的目录是/home/zhf/py_prj,cd py_prj就可以跳转到/home/zhf/py_prj目录

In [38]: %bookmark py_prj /home/zhf/py_prj

In [39]: cd py_prj

/home/zhf/py_prj

In [41]: %bookmark -l

Current bookmarks:

/home/zhf -> /home/zhf/桌面

l         -> /home/zhf/py_prj

py_prj    -> /home/zhf/py_prj

使用-l的参数可以打印出所有的书签。

%cd directory: 将系统工作目录更改为directory

%pwd: 返回系统的当前工作目录

%pushd directory: 将当前目录入栈,并转向目标目录。

%popd:弹出栈顶目录,并转向该目录

%dirs:返回一个含有当前目录栈的列表

%dhist:打印目录访问历史

%env:以dict形式返回系统环境变量。

软件开发工具:

在ipython中集成了pdb工具,可以很方便的对代码进行调试。在ipython中使用%run -d 脚本进入调试器

调试器的命令有如下:

h(elp):显示命令行列表

c(ontinue):恢复程序的执行

q(quit):退出调试器

b(reak) number:在当前文件的number行设置断点

s(tep):单步进入函数调用

n(next):执行当前行,并进入到下一行

u(p)/d(own):在函数调用栈中向上或向下移动

a(rgs):显示当前函数的参数

debug statement:在新的递归调试器中调用statement

l(ist) statement:显示当前行,以及当前栈级别上的上下文参考代码

w(here):打印当前位置的完整栈跟踪。

In [51]: %run -d test1.py

Breakpoint 1 at /home/zhf/py_prj/test1.py:1

NOTE: Enter ‘c‘ at the ipdb>  prompt to continue execution.

> /home/zhf/py_prj/test1.py(2)<module>()

1     1

----> 2 def add_function():

3     a=3

4     b=4

5     return a+b

ipdb> s

> /home/zhf/py_prj/test1.py(8)<module>()

4     b=4

5     return a+b

6

7

----> 8 result=add_function()

测试代码的执行时间:

在python中如果要计算代码的执行时间一般都是用如下的方法:

import time

start=time()

******function******

end=time()

during=end-start

在ipython中专门提供了2个魔术函数自动完成该过程。%time一次执行一个语句,然后报告执行的总体时间,

In [52]: string=[‘zhf‘,‘maple‘,‘zhfcmx‘,‘zhanghongfeng‘,‘chengdu‘,‘chongqing‘]

In [53]: %time method=[x for x in string if x.startswith(‘zhf‘)]

CPU times: user 4 μs, sys: 1 μs, total: 5 μs

Wall time: 5.96 μs

In [54]: %time method=[x for x in string if x.startswith(‘zhf‘)]

CPU times: user 9 μs, sys: 2 μs, total: 11 μs

Wall time: 16 μs

但是可以发现,每次对同一个过程执行相同的%time返回的结果都不一样,所以%time的结果并不是一个非常精确的结果。ipython还提供了%timeit 命令来多次执行并返回一个精确的平均执行时间

In [55]: %timeit method=[x for x in string if x.startswith(‘zhf‘)]

The slowest run took 5.50 times longer than the fastest. This could mean that an intermediate result is being cached.

1000000 loops, best of 3: 564 ns per loop

ipython HTML Notebook:

Notebook是ipthon一个很棒的功能,它把命令行交互从终端搬到了网页上,对于演示来说非常方便。首先需要安装jupyter。pip install jupyter。

[email protected]:/home/zhf/py_prj# ipython notebook

[TerminalIPythonApp] WARNING | Subcommand `ipython notebook` is deprecated and will be removed in future versions.

[TerminalIPythonApp] WARNING | You likely want to use `jupyter notebook` in the future

[I 18:27:56.358 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret

[C 18:27:56.372 NotebookApp] Running as root is not recommended. Use --allow-root to bypass.

这里提示不建议用root帐号登录。添加--allow-root后就开始运行了

[email protected]:/home/zhf/py_prj# ipython notebook --allow-root

[TerminalIPythonApp] WARNING | Subcommand `ipython notebook` is deprecated and will be removed in future versions.

[TerminalIPythonApp] WARNING | You likely want to use `jupyter notebook` in the future

[I 18:28:09.174 NotebookApp] Serving notebooks from local directory: /home/zhf/py_prj

[I 18:28:09.174 NotebookApp] 0 active kernels

[I 18:28:09.174 NotebookApp] The Jupyter Notebook is running at:

[I 18:28:09.174 NotebookApp] http://localhost:8888/?token=d830e950b77bd0325e68bbbab4a8b1fd0f8936d8ec029b03

[I 18:28:09.174 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

[C 18:28:09.176 NotebookApp]

Copy/paste this URL into your browser when you connect for the first time,

to login with a token:

http://localhost:8888/?token=d830e950b77bd0325e68bbbab4a8b1fd0f8936d8ec029b03

浏览器会自动弹出网路界面如下,会将当前工作目录下的文件都显示出来

在new下点击Python2就可以进入在线交互平台

在此可以输入交互命令,每个交互命令都是一个cell,可以在前后分别插入cell也就是命令。点击Run后即可运行

原文地址:https://www.cnblogs.com/zhanghongfeng/p/8289369.html

时间: 2024-10-08 09:44:48

python数据分析之ipython的相关文章

萌新向Python数据分析及数据挖掘 第二章 pandas 第二节 Python Language Basics, IPython, and Jupyter Notebooks

Python Language Basics, IPython, and Jupyter Notebooks In [5]: import numpy as np #导入numpy np.random.seed(12345)#设定再现的的随机数 np.set_printoptions(precision=4, suppress=True) #设置打印设置 Signature: np.set_printoptions(precision=None, threshold=None, edgeitem

Python数据分析入门

Python数据分析入门 最近,Analysis with Programming加入了Planet Python.作为该网站的首批特约博客,我这里来分享一下如何通过Python来开始数据分析.具体内容如下: 数据导入 导入本地的或者web端的CSV文件: 数据变换: 数据统计描述: 假设检验 单样本t检验: 可视化: 创建自定义函数. 数据导入 这是很关键的一步,为了后续的分析我们首先需要导入数据.通常来说,数据是CSV格式,就算不是,至少也可以转换成CSV格式.在Python中,我们的操作如

Python数据分析必备Anaconda安装、快捷键、包安装

Python数据分析必备: 1.Anaconda操作 首先应该设置本地存放数据目录为工作目录,这样可以加载本地数据集到内存中 import os os.chdir("D:/BigData/Workspace/testdata/") #设置当前路径为工作路径 os.getcwd() #获取当前工作路径 2.安装Graphviz 摘录自官网: What is Graphviz? Graphviz is open source graph visualization software. Gr

Python数据分析班

第一课 Python入门知识点1:Python安装知识点2:常用数据分析库NumPy.Scipy.Pandas.matplotlib安装知识点3:常用高级数据分析库scikit-learn.NLTK安装知识点4:IPython的安装与使用知识点5:Python2与Python3区别简介实战项目:Python常用科学计算第二课 准备数据与Numpy知识点1:多维数组对象知识点2:元素级别处理函数知识点3:利用数组进行数据处理知识点4:文件输入输出知识点5:线性代数相关功能以及线性代数基础知识知识点

python数据分析&amp;挖掘,机器学习环境配置

目录 一.什么是数据分析 1.这里引用网上的定义: 2.数据分析发展与组成 3.特点 二.python数据分析环境及各类常用分析包配置 1.处理的数据类型 2.为什么选择python 三.python数据分析环境安装 1.Ipython 2.Jupyter 3.Anaconda安装器 4.Jupyter与集成开发环境与文本编辑器 三.常用数据分析包 1.NumPy 2.pandas 一.什么是数据分析 1.这里引用网上的定义: ???????数据分析是指用适当的统计分析方法对收集来的大量数据进行

python数据分析笔记——数据加载与整理]

[ python数据分析笔记--数据加载与整理] https://mp.weixin.qq.com/s?__biz=MjM5MDM3Nzg0NA==&mid=2651588899&idx=4&sn=bf74cbf3cd26f434b73a581b6b96d9ac&chksm=bdbd1b388aca922ee87842d4444e8b6364de4f5e173cb805195a54f9ee073c6f5cb17724c363&mpshare=1&scene=

[Python数据分析]新股破板买入,赚钱几率如何?

这是本人一直比较好奇的问题,网上没搜到,最近在看python数据分析,正好自己动手做一下试试.作者对于python是零基础,需要从头学起. 在写本文时,作者也没有完成这个小分析目标,边学边做吧. ================================================================ Python基础: 中国大学Mooc,南京大学,张莉老师 -<用Python玩转数据> 了解基本的语法和常用函数就行了,其他的用的时候再搜. 财经数据源: TuShare

Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识

Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4节 透视表和交叉表 第5节 时间序列 第6节 日期的规范.频率以及移动 第7节 时区处理 第8节 时期及算术运算 第9节 重采样及频率转换 第10节 时间序列绘图 groupby 技术 一.实验简介 Python 数据分析(二)需要同学们先行学完 Python 数据分析(一)的课程. 对数据集进行分

python数据分析简略介绍

1.Python以其开发效率著称,致力用最短的代码完成,但是开发效率并不高,被称为"胶水语言".含义是耗时的核心代码用C/C++等更高效的语言编写,然后用python来粘合,以此来解决python的运行效率问题.但在数据任务上,python的运行效率和C/C++已经差不多了. 2.python基本命令自己要注意的几点: print u'a不等于1'   #在输出中文前可以加上u 3.python中的数据结构 4个内建的数据结构:List.Tuple.Dictionary.Set,可以统