Python数据分析与挖掘实战学习笔记

本文介绍了Python数据分析的重要工具,包括Numpy、Scipy、Matplotlib、Pandas、StatsModels、Scikit-Learn、Keras和Gensim。Numpy提供高效数组功能,Scipy扩展了矩阵和科学计算功能,Matplotlib用于数据可视化,Pandas是强大的数据处理库,StatsModels专注于统计建模,Scikit-Learn提供机器学习工具,Keras是深度学习库,而Gensim处理文本和主题建模。通过案例和代码示例,文章展示了这些库的基础用法。
摘要由CSDN通过智能技术生成

Chapter2 Python数据分析工具

序言

 Python本身的数据分析功能不强,需要安装一些第三方扩展库来增强它的能力。
 如果安装了Anaconda发行版,那么它自带了以下库:Numpu、Scipy、Matplotlib、Pandas、Scikit-Learn。
 本章主要简单介绍这些库,在后面的章节中,会通过各种案例对这些库的使用进行更深入的说明。废话不多说,开始我的表演了!

1. Numpy

 Python并没有提供数组功能。虽然列表可以完成基本的数组功能,但它不是真正的数组,而在数据量较大时,使用列表的速度就会慢得让人难以接受。为此,Numpy提供了真正的数组功能,以及对数据进行快速处理的函数。Numpy还是很多高级的扩展库的依赖库,后面章节介绍的Scipy、Matplotlib、Pandas都依赖于它。值得强调的是,Numpy内置函数处理数据的速度是C语言级别的,因此在编写程序的时候,应当尽量使用它的内置函数,避免出现效率瓶颈的现象。
 在Windows中,Numpy的安装跟普通的第三方库安装一样:

pip install numpy

也可自行下载源代码,然后用:

python setup.py install  # 安装

 在Linux下上述方面也是可行的。此外,很多Linux发行版的软件源中都有Python常见的库,因此还可以通过Linux自带的软件管理器进行安装,如在Ubuntu下可以用:

sudo apt-get install python-numpy

安装。安装完成以后,就可以进行Numpy的基本操作了。

#  Numpy-----提供数组支持,以及对数据进行快速处理的函数
import numpy as np
a = np.array([2, 0, 2, 0])  # 创建数组
print(a)  # 输出数组
print(a[:3])  # 引用前三个数字(切片)
print(a.min())  # 输出a的最小值
a.sort()  # 将a的元素从小到大排序,此操作直接修改a, 因此这时候a为[0, 0, 2, 2]
print(a)
b = np.array([[1, 2, 3], [4, 5, 6]])  # 创建二维数组
print(b*b)  # 输出数组的平方阵,即[[1, 4, 9],[16, 25, 36]]

[2 0 2 0] # 输出数组
[2 0 2] # 引用前三个数字(切片)
0 # 输出a的最小值
[0 0 2 2] # 将a的元素从小到大排序
[[ 1 4 9]
[16 25 36]] # 输出数组的平方阵

2.Scipy

 如果说Numpy让Python有了Matlab的味道,那么Scipy就让Python真正地成为了半个Matlab了。Numpy提供了多维数组的功能,但它只是一般的数组,并不是矩阵。例如,当两个数组相乘时,只是对应的元素相乘,而不是矩阵乘法。Scipy提供了真正的矩阵,以及大量基于矩阵运算的对象和函数。
 Scipy包含的功能有最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学于工程中常用的计算,显然,这些功能都是挖掘于建模必备的。
 同样,安装Scipy。安装好以后,进行简单的适用。

# 求解非线性方程组 2x1 - 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]并求解
print(result)  # 输出结果,为array([1.91963957, 1.68501606])
 # 数值积分
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)  # 由微积分知识知道积分结果为圆周率的一半

[1.91963957 1.68501606]
3.1415926535897967

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值