一、python数据挖掘相关扩展库
扩展库 | 简介 |
---|---|
numpy | 提供数组支持,以及相应的高效的处理函数 |
Scipy | 提供矩阵支持,以及矩阵相关的数值计算模块 |
Pandas | 强大、灵活的数据分析和可视化工具 |
Statsmodels | 统计建模和计量经济学,包括描述统计、统计模型估计和推断 |
Scikit-Learn | 支持回归、分类、聚类等的强大的机器学习库 |
Kears | 深度学习库,用于建立神经网络以及深度学习模型 |
Gensim | 用来做文本模型的库,文本挖掘可能用到 |
二、numpy的基本操作
在这里插入代码片
import numpy as np
a=np.array([2,0,1,5]) #创建数组
print(a)` #输出数组
print(a[:3]) #切片,输出数组前三个值
print(a.min()) #输出数组中的最小值`
print(a.max())` #输出数组中的最大值
a.sort() #将a的元素从小到大排序,吃操作直接修改a.
b=np.array([1,2,3],[4,5,6])#创建二维数组
print(b*b) #输出数组b的平方阵,即[[1,4,9],[16,25,36]
参考链接:http://reverland.org/python/2012/0822/numpy/
2.numpy的基本用法
(1)a.ndim:维度数,也表示轴的个数,在python中被称作秩
(2)a.shape:该数组几行几列,行在前列在后。
(3)a.size:数组元素的总个数,等于shape属性中元组元素的乘积。
(4)a.dtype:描述数组中元素类型的对象,可以通过创造或指定dtype使用标准Python类型
(5)a.itemsize:数组中每个元素的字节大小.
(6) import numpy和from numpy import *的区别 :
import numpy:如果使用numpy的属性都需要在前面加上numpy
from numpy import *:则不需要加上numpy
后者不建议使用,如果下次引用和numpy里的函数一样的情况,就会出现命名冲突。
(7)a.np.arange(x1, x2, n)和a.np.linspace(x1, x2, n)
import numpy as np
e = np.arange(10, 30, 5)
f = np.linspace(10, 20, 30)
a = arange(6)
# 当arange使用浮点数参数时,由于有限的浮点数精度,通常无法预测获得元素个数。因此,最好
# 使用函数linspace去接收我们想要的元素个数来代替用range来指定步长。
print(f)
print(e)
print(a)
'''结果:
[10. 10.34482759 10.68965517 11.03448276 11.37931034 11.72413793
12.06896552 12.4137931 12.75862069 13.10344828 13.44827586 13.79310345
14.13793103 14.48275862 14.82758621 15.17241379 15.51724138 15.86206897
16.20689655 16.55172414 16.89655172 17.24137931 17.5862069 17.93103448
18.27586207 18.62068966 18.96551724 19.31034483 19.65517241 20.]
[10 15 20 25]
[0, 1, 2, 3, 4, 5]'''
(8)打印数组:
import numpy as np
a=np.arange(12).reshape(3,4)
b=np.arange(24).reshape(2,3,4)
print(a)
print(b)
'''结果:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]'''
3.numpy的基本运算:
import numpy as np
a=np.array([0,1,2,3])
b=np.array([20,30,31,32])
c=b-a
print(b<31)
print(c)
'''结果:
[ True True False False]
[20 29 29 29]'''
(2)numpy的乘法和矩阵的乘法
import numpy as np
a=np.array([[0,1],[1,2]])
b=np.array([[2,3],[3,4]])
print(a*b) #numpy的乘法一定要满足行数和列数要分别相等。
c=np.dot(a,b) #矩阵的乘法一定要满足a的列与b的行数相等,
print(c)
'''结果:
[[0 3]
[3 8]]
[[3 4]
[8 11]]'''
4.切片和索引
(1)一维数组可以被索引、切片和迭代,就像列表和其它Python序列,多维数组可以每个轴有一个索引。这些索引由一个逗号分割的元组给出。
import numpy as np
a=np.array([[0,3],[1,2],[2,5]])
print(a)
print(a[2,1])
print(a[0:3,1])
print(a[-1])#当少于轴数的索引被提供时,确失的索引被认为是整个切片
print(a[-2])#(-1)表示最后一行,(-2)倒数第二行
'''结果:
[[0 3]
[1 2]
[2 5]]
5
[3 2 5]'''
5.视图(view)和浅复制(修改现变量,原变量跟着一起变化)
import numpy as np
a=np.array([[0,3],[1,2],[2,5]])
c=a.view()#不同的数组对象分享同一个数据。视图方法创造一个新的数组对象指向同一数据。
print(c is a)
print(c.base is a)
'''结果:
False
True'''
(1)深复制:copy(),修改现变量,原变量不会发生改变
import numpy as np
a=np.array([[0,3],[1,2],[2,5]])
c=a.copy()
p