在用python进行数据分析的时候,需要提前安装如下几个库:
Numpy:是python进行科学计算的科学包
pandas:提供了能够快速便捷地处理结构化数据的大量数据结构和函数
matplotlib: 看名字和matlab有点像,matplotlib是用于绘制数据图表的python库
ipython:科学计算标准工具集的组成部分,它将其他的东西都联系到了一起。可以算是一个集成开发环境,也算是一个Python shell. 它主要用与交互式数据处理和利用matplotlib对数据进行可视化处理。
Scipy: 专门解决科学计算中的各种标准问题域的包的集合。
安装完上述的包以后,我们首先来了解ipython:
我们通过命令行来启动ipython
root@zhf-maple:/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的参数可以打印出所有的书签。