python基础教程数据分析_Python基础教程之Python数据分析工具总结-程序员宅基地

技术标签: python基础教程数据分析  

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()      #显示作图结果

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

19033119434971.png

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39814093/article/details/110073996

智能推荐

【数学】简化剩余系、欧拉函数、欧拉定理与扩展欧拉定理-程序员宅基地

文章浏览阅读894次,点赞27次,收藏31次。讲解简化剩余系、欧拉函数、欧拉定理与扩展欧拉定理

语音交互开源平台对比_tts api 开源 对比-程序员宅基地

文章浏览阅读8.7k次,点赞2次,收藏19次。语音识别项目:http://www.oschina.net/project/tag/203/tts-speech sf.net http://www.codesoso.net/Search?q=%D3%EF%D2%F4%CA%B6%B1%F0&amp;l=chttp://search.codesoso.com/Search?q=%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%A..._tts api 开源 对比

CR(变更请求)-程序员宅基地

文章浏览阅读963次。  CR(变更请求)用于记录和追踪缺陷、扩展请求和任何其他类型的产品变更请求。变更请求的优点在于,它们提供了决策记录,且其评估的流程还确保了变更的影响可在整个项目范围内得到认同和理解。..._cn和cr变更

python循环语句while教案_while循环教学设计-程序员宅基地

文章浏览阅读2.5k次。第7课《while循环》教学设计【教学目标】1.知识与技能:巩固Python语言中的if-else语句和取余运算符%;了解并学会while循环结构及其用法,学会使用计数变量控制循环次数。会用while循环重复打印相同的语句,会用while循环找到100以内的奇数和偶数。2.过程与方法:鼓励学生通过自主探究、小组合作等方法解决问题,在学习中不断经历分析思考、实践求证、反馈调适的计算思维过程,进一步熟..._python语言while循环教学设计

AD从原理图到PCB超详细教程_原理图怎么生成pcb-程序员宅基地

文章浏览阅读8.7w次,点赞426次,收藏2.3k次。我在学习AD的时候,看了网上很多教程,但是东西很杂,有很多条理不清而且废话很多,所以相信大家学习的时候也是遇到一样的困难。我就特地写一篇帖子,整理了一下AD从画原理图开始一直到画完PCB文件的所有步骤,一方面是供大家参考学习,另一方面可以方便我自己学习记忆更加深刻。我用的版本是AD16中文版,大家用新的版本AD20或者AD22应该操作都是差不多的。_原理图怎么生成pcb

使用 /proc 文件系统来控制系统_echo命令 /pro文件系统-程序员宅基地

文章浏览阅读523次。/proc 文件系统是 Linux 的优秀特性之一,本文向您详细讲述了它的一些最实用的基础知识。使用 /proc,您再也不用关闭并重新引导机器来管理操作系统的许多细节问题,这对那些要求系统的可用性尽可能高的管理员来说非常有用。任何管理过具有商业重要性的系/proc 文件系统是 Linux 的优秀特性之一,本文向您详细讲述了它的一些最实用的基础知识。使用 /proc,您再也不用关闭并重新引导机器来管理操作系统的许多细节问题,这对那些要求系统的可用性尽可能高的管理员来说非常有用。

随便推点

剑指——58.二叉树的下一个结点-程序员宅基地

文章浏览阅读122次。58.二叉树的下一个结点题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。struct TreeLinkNode { int val; struct TreeLinkNode *left; struct TreeLinkNode *right; struc...

沙龙回看 | 携程技术沙龙——后端架构工程实践-程序员宅基地

文章浏览阅读436次。本周我们结束了携程技术沙龙——后端架构工程实践专场的四场直播,现把相关的PPT和视频分享给小伙伴们,欢迎点击查看。9月15日《携程DRC-MySQL数据双向复制实践》随着携程国际化战略的..._携程国际化 架构

eclipse导入项目(Some projects cannot be imported because they already exist in the workspace)_eclipse怎样导入项目报错some project-程序员宅基地

文章浏览阅读923次。这个昨天遇到了,以前也遇到过,忘了怎么解决的。网上有很多说不copy到workspace然后refresh,这个方法我这里没啥用。提供一个曲线救国的方法:eclipse导入项目识别的是目录中的.project,出现错误是因为我们原来导入的项目.project已经存储在workspace下面(即使删除了,workspace可能还存储这个project一些信息),再次导入识别之后发现.proj..._eclipse怎样导入项目报错some project

AWS-AWS Systems Manager Session (SSM 会话管理器)试用_aws会话管理器-程序员宅基地

文章浏览阅读5.8k次。Session Manager 是什么,能做什么AWS Systems Manager 会话管理器是一个新的交互式 Shell 和 CLI,有助于提供安全、访问权限受到控制且经过审计的 Windows 和 Linux EC2 实例管理。使用会话管理器,您无需打开入站端口、管理 SSH 密钥或使用堡垒主机。并且登录的主机可以处于公有子网或者私有子网。借助会话管理器,您可以提高安全性,集中进行..._aws会话管理器

uniapp(微信小程序/支付宝小程序) - 最新解决canavs绘制海报、二维码图片等不显示问题,在uniapp小程序开发中使用canavs制作base64图片在真机运行时空白不显示(详细解决方法)_uni-app 微信小程序canvas 不显示-程序员宅基地

文章浏览阅读2.9k次,点赞6次,收藏3次。uni-app,微信小程序,支付宝小程序,uniapp小程序,canvas,base64,微信小程序中base64格式的小程序码通过canvas画出来无效,真机调试二维码不显示的问题。小程序base64编码图片无法使用canvas绘制,uni-app小程序 真机显示canvas上利用base64图片生成的海报,微信小程序中base64格式的小程序码通过canvas画出来无效,解决canvas base64图片在小程序真机不显示问题,无法使用canvas绘制的问题,微信小程序使用canvas真机不生效,微信小_uni-app 微信小程序canvas 不显示

python第四章课后题答案4.7_数据结构(python语言描述)第四章答案-程序员宅基地

文章浏览阅读551次。以下是个人做法。仅作参考练习4.33、# -*- coding=utf-8 -*-__author__ = 'junhao'__date__ = '2018/9/30 10:41'"""File: arrays.pyAn Array is like a list, but the client can use only [], len, iter, and str.To instantiate, ..._数据结构python曹岳辉答案

推荐文章

热门文章

相关标签