Python主要是依靠众多的第三方库来增强它的数据处理能力的。常用的是Numpy库,Scipy库、Matplotlib库、Pandas库、Scikit-Learn库等。

常规版本的python需要在安装完成后另外下载相应的第三方库来安装库文件。而若安装的是Anaconda版本的Python,则不需要一个一个安装第三方库,可能已经同时安装了这些库。

Anaconda是专门应用于科学计算的Python版本。

Numpy库:表达N维数组的最基本的库。

Numpy库是专门为应用于严格的数据处理开发的,它提供了一个非常强大的N维数组对象array和实用的线性代数、傅里叶变换和随机数生成函数,可以存储和处理大型的矩阵,Scipy,matplotlib,pandas库等均依赖于它。

① 安装Numpy库:pip install numpy ,集成安装方法(anaconda)或者文件安装方法(先从UCI页面搜索库,下载对应版本的文件,使用 pip install <文件名>进行安装)

② 多维数组:用array函数创建数组,array函数接收一切序列类型的对象(list,tuple,其他数组)  import numpy as np

A=np.array(列表、元组或数组)

创建特殊函数:import numpy as np

B=np.ones(n,m),C=np.zeros(n,m) ,I=np.eye/identify(n) 等

SciPy库:提供了真正的矩阵,以及基于矩运算的对象和函数,Scipy包含的功能有最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信息处理和图像处理、常微分方程求解和其他科学和工程常用的计算。

注意:Scipy库依赖于Numpy库,需先安装Numpy库

例:使用Scipy求解线性方程组的方法:

import scipy

from scipy import linalg

a=scipy.mat('[2 1 -5 1;1 -3 0 -6;0 2 -1 2;1 4 -7 6]')

b=scipy.mat('[8;9;-5;0]')

solve=linalg.solve(a,b)

print(solve)      #运行结果输出值矩阵

[ [3.]

[-4.]

[-1.]

[1.] ]

该方程的另一解为:使用LU求解多个线性方程

from numpy import *

import scipy.linalg as s1

A=array([[2,1,-5,1],[1,-3,0,-6],[0,2,-1,2],[1,4,-7,6]])

b=array([8,9,-5,0])

bi=b.reshape(-1,1)

[LU,piv]=s1.lu_factor(A)

print(LU,piv)

xi=s1.lu_solve((LU,piv),bi)

print(xi)

#得到运行结果:[[ 2.          1.         -5.          1.        ]

[ 0.5        -3.5         2.5        -6.5       ]

[ 0.5        -1.         -2.         -1.        ]

[ 0.         -0.57142857 -0.21428571 -1.92857143]]                [0 1 3 3]

[[ 3.]

[-4.]

[-1.]

[ 1.]]

在Scipy 中,分解LU的方法有两种:1.标准方法是scipy.linalg.lu 该方法返回三个矩阵L,U,P。

2.方法lu_factor与lu_solve结合起来使用,L和U一起存储在n*n的数组中,存储序列矩阵P的信息只需要一个n整数向量即轴向量来完成。

 3.Matplotlib库:是python的一个2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。应用: 使用Matplotlib可以实现数据的可视化

例1:使用Matplotlib进行画图的一些基本代码:

iimport matplotlib.pyplot as plt

import numpy as np

x=np.linspace(0,10,1000)   #设置自变量格式 其中linspace(0,10,1000)表示x由平均分布在0—10之间的1000个点所组成

y=np.sin(x)+1    #设置因变量y

z=np.cos(x**2)+1       #设置另一因变量z

plt.figure(figsize=(8,4))     #设置图像大小

plt.plot(x,y,label="sinx+1",color='red',linewidth=2)    #作图(x,y),设置标签格式

plt.plot(x,z,label="cosx^2+1")  #作图(x,z)

plt.xlabel('Time(s)')  #设置x轴名称

plt.ylabel('Volt')      #设置y轴名称

plt.title('A simple Example')   #设置表格标题

plt.ylim(0,2.2)      #显示的y轴范围

plt.legend()   #显示图例

plt.show()      #显示作图结果

运行上述代码,可以得到如下图:(注意:该图可以保存为图片格式,保存的图片质量几乎满足各种版本要求)

4.pandas 库:是包含高级的数据结构和精巧的分析工具,支持SQL的数据增、删、改、查操作,并包含很多处理函数。

(1)Pandas的数据结构series:

Series 由一组数据(各种Numpy数据类型)以及一组与之有关的数据标签(即索引)组成。它的字符串的表现形式为:索引左边  值右边

例1. 创建Series对象:

from pandas import Series

obj_list=[1,2,3,4,5]

obj_tuple=(1.2,2.5,3.3,4.8,5.4)

obj_dict={'Tom':[16,'boy'],'Max':[12,'boy'],'Julia':[18,'girl']}

series_list=Series(obj_list)

series_tuple=Series(obj_tuple,index=['a','b','c','d','e'])

series_dict=Series(obj_dict)

print("(1)通过list建立Series:")

print(series_list)

print('(2)通过tuple建立series:')

print(series_tuple)

print("(3)通过dict建立series:")

print(series_dict)

运行结果为:

(1)通过list建立Series:

0    1                 #注意:当没有给出索引值得时候,series从0开始自动创建索引

1    2

2    3

3    4

4    5

dtype: int64

(2)通过tuple建立series:

a    1.2

b    2.5

c    3.3

d    4.8

e    5.4       dtype: float64

(3)通过dict建立series:

Tom       [16, boy]

Max       [12, boy]

Julia    [18, girl]        dtype: object

(2)Pandas的数据结构DataFrame

DataFrame 是pandas的主要数据结构之一,是一种带有二维标签的二维对象,DataFrame结构的数据有一个行索引和列索引,且每一行的数据格式可能是不同的。

例:DataFrame的创建和一些基本操作:

from pandas import DataFrame    #从pandas库中引用DataFrame

from pandas import Series      #从pandas库中引用series

obj={'name':['Tom','Peter','Lucy','Max','Anna'],'age':['17','23','44','27','36'],

'status':['student','student','doctor','clerk','performer']}

series_dict1=Series([1,2,3,4,5],index=['a','b','c','d','e'])

series_dict2=Series([6,7,8,9,10],index=['a','b','c','d','e'])

print(series_dict2)

df_obj=DataFrame(obj)#创建dataframe对象

print(df_obj)

df_obj2=DataFrame([series_dict1,series_dict2])

print(df_obj2)

print('---查看前几行数据,默认5行---')

print(df_obj.head())

print("-----提取一列-----")

print(df_obj.age)

print("------添加列-----")

df_obj['gender']=['m','m','f','m','f']   #直接用键来添加

print(df_obj)

print('-----删除列-----')

del df_obj['status']

print(df_obj)

print("-----转置-----")

print(df_obj2.T)

运行结果:

a     6     #返回series_dict2

b     7

c     8

d     9

e    10

dtype: int64

name age     status         #dataframe数据结构

0    Tom  17    student

1  Peter  23    student

2   Lucy  44     doctor

3    Max  27      clerk

4   Anna  36  performer

a  b  c  d   e

0  1  2  3  4   5

1  6  7  8  9  10

--查看前几行数据,默认5行---

name age     status

0    Tom  17    student

1  Peter  23    student

2   Lucy  44     doctor

3    Max  27      clerk

4   Anna  36  performer

-----提取一列-----

0    17

1    23

2    44

3    27

4    36

Name: age, dtype: object

------添加列-----

name age     status gender

0    Tom  17    student      m

1  Peter  23    student      m

2   Lucy  44     doctor      f

3    Max  27      clerk      m

4   Anna  36  performer      f

-----删除列-----

name age gender

0    Tom  17      m

1  Peter  23      m

2   Lucy  44      f

3    Max  27      m

4   Anna  36      f

-----转置-----

0   1

a  1   6

b  2   7

c  3   8

d  4   9

e  5  10

Python基础学习之Python主要的数据分析工具总结的更多相关文章

  1. Python基础学习之环境搭建

    Python如今成为零基础编程爱好者的首选学习语言,这和Python语言自身的强大功能和简单易学是分不开的.今天我们将带领Python零基础的初学者完成入门的第一步——环境搭建.本文会先来区分几个在P ...

  2. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  3. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  4. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  5. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

  6. (一)python基础学习

    根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...

  7. python基础学习(起步)

    目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...

  8. Python基础学习二

    Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...

  9. Python基础学习一

    Python基础学习一 1.变量与常量 变量名:大小写英文.数字.下划线的组合,数字不能开头 常量名:习惯上常量用大写字母命名,例如"PI" 2.多行输出 转义符:反斜杠(),如果 ...

随机推荐

  1. Centos7 yum安装tomcat

    以下操作是在线安装apache-tomcat 需要联网下载包. liux系统环境 [root@localhost ~]# cat /etc/redhat-release CentOS Linux re ...

  2. NuGet Packages are missing,This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.

    错误内容 This project references NuGet package(s) that are missing on this computer. Use NuGet Package R ...

  3. windows环境下redis启动加到服务中

    前置条件: 1.命令运行在redis-server.exe目录下  2.cmd命令  安装命令: redis-server.exe --service-install redis.windows.co ...

  4. mysql安装过程mysql本地环境变量的配置

    配置环境变量 前面步骤完成后安装好MySQL,为MySQL配置环境变量.MySQL默认安装在C:\Program Files下. 1)新建MYSQL_HOME变量,并配置:C:\Program Fil ...

  5. 获取请求IP

    服务器获取客户端或者网页的请求,获取IP时需要注意,并不是直接 request.getRemoteAddr(); 就可以了,因为一个请求到达服务器之前,一般都会经过一层或者多层代理服务器,比如反向代理 ...

  6. 【sql基础】按照名字分组查询时间最早的一条记录

    给出2种解决方案 rownumber SELECT * FROM ( SELECT IdentityID, OpenID, ROW_NUMBER() OVER(PARTITION BY OpenID ...

  7. C++学习 —— 住着魔鬼的细节

    13周的C++课程转眼就学完了5周,C++的标准基本上已经覆盖到了.再加上coding了上百行,总算是对C++有了一个基本的了解.接下来的学习会是关于STL的,所以在此对目前所学做一个小的总结. th ...

  8. poj 1228

    就是给你一堆点,看这些点能否构成一个 稳定的凸包. 凸包每条边上有3个及以上的点就可以了. #include <cstdio> #include <cstring> #incl ...

  9. 最小生成树 prime+heap

    改一个错误真不容易,刚开始没有加上used数组,没有判断每个顶点是否已经加入到数组当中,结果同一个顶点被pop不止一次. struct edge{int to,cost;}; typedef pair ...

  10. php算法题

    一群猴子排成一圈,按1,2,…,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大 ...