Python数据分析工具

《Python数据分析及挖掘实战》

Python数据分析工具

  • Numpy

提供数组支持,以及相应的高效的处理函数。

Numpy内置函数处理数据的速度是C语言级别的,因此在编写程序的时候,应当尽量使用它们内置的函数,避免出现效率瓶颈。

# -*- coding: utf-8 -*
import numpy as np #np means numpy
a = np.array([2,0,1,5]) # 创建数组
print(a) # 输出数组
print(a[:3]) # 引用前三个数字(切片)
print(a.min()) # 输出a的最小值
a.sort() # 将a的元素从小到大排序,此操作直接修改a,此时a为[0,1,2,5]
print(a)
b = np.array([[1,2,3],[4,5,6]]) # 创建二维数组,注意括号写法
print (b*b) # 输出数组平方阵

  • Scipy
Scipy 提供矩阵支持,以及矩阵相关的数值计算模块。
Scipy 提供了真正的矩阵,以及大量基于矩阵运算的对象与函数。
Scipy 包含的功能有最优化、线性代数、积分、差值、拟合、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解等,都是挖掘与建模必备的。
# -*- coding:utf-8 -*
#求解非线性方程组 
# 2 * X1 - X2 ^ 2 = 1
# x1 ^ 2 - x2     = 2
from scipy.optimize import fsolve # 导入求解方程组的函数
def f(x): # 定义要求解的方程组
    x1 = x[0]
    x2 = x[1]
    return [2*x1 - x2**2 - 1 , x1**2 - x2 - 2]
    
result = fsolve(f,[1,1]) #输入初值[1,1]求解
                         #注意书上错写为fsove 
print result # 输出结果

# 数值积分
from scipy import integrate # 导入积分函数
def g(x):
    return (1-x**2)**0.5
    
pi_2 , err = integrate.quad(g,-1,1) # 积分结果和误差
print pi_2 * 2 # 积分结果为圆周率pi的一半


  • Matplotlib


强大的数据可视化工具、作图库。

主要用于二维绘图,也可以进行简单的三维绘图。
# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt # 导入Matplotlib

x = np.linspace(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 = '$\sin x+1$',color = 'red',linewidth = 2) 
# 作图,设置标签,线条颜色,线条大小
plt.plot(x,z,'b--',label = '$\cos x^2+1$') #作图,设置标签,线条类型
plt.xlabel('Time(s) ') # X 轴名称
plt.ylabel('Volt') # Y label
plt.title('A simple Example') # title
plt.ylim(0, 2.2) # show the range of y label
plt.legend() # 显示图例
plt.show() #显示结果



  • Pandas

强大、灵活的数据分析和探索工具。

Pandas 的功能非常强大,支持类似于SQL的数据增、删、查、改,并且带有丰富的数据处理函数;支持时间序列分析;支持灵活处理缺失数据等。

Pandas 参考书目《利用Python进行数据分析》!

# -*- coding:utf-8 -*-
import pandas as pd #通常用 pd 作为 pandas 的别名

s = pd.Series([1,2,3], index = ['a','b','c']) # 创建一个序列a
d = pd.DataFrame([[1,2,3],[4,5,6]], columns = ['a','b','c']) # 创建表
d2 = pd.DataFrame(s) # 也可以用已有的序列来创建表格

d.head() #预览前5行数据
d.describe() # 数据基本统计量

# 读取文件,注意文件的存储路径不能带有中文,否则可能出错
pd.read_excel('data.xls') # 读取Excel文件,创建 DataFrame
pd.read_csv('data.scv',encoding = 'utf-8') # 读取文本格式的数据,指定编码uft-8


程序似乎不能直接运行,似乎需要先建立或者下载 csv 和 xls 文件,待研究。



  • StatsModels

统计建模和计量经济学,包括描述统计、统计模型估计和推断。
Pandas 着眼于数据的读取、处理和探索,而StatsModels则更加注重于数据的统计建模分析,它使得 Python 有了 R语言 的味道
# -*- coding:utf-8 -*-
from statsmodels.tsa.stattools import adfuller as ADF # 导入ADF检验
import numpy as np
ADF(np.random.rand(100)) # 返回的结果有ADF值、P值等

  • Gensim
用来做文本主题模型的库,文本挖掘可能用到。
# -*- coding:utf-8 -*-
import gensim, logging
logging.basicConfig(format='%(asctime)s:%(levelnames)s:%(message)s',level = logging.INFO)
# logging是用来输出训练日志

# 分好词的句子,每个句子以词列表的形式输入
sentences = [['first','sentences'],['second','sentences']]

# 用以上句子训练词向量模型
model = gemso.models.Word2Vec(sentences,min_count=1)

print(model['sentence']) # 输出单词 sentence 的词向量






  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值