引言 : python
数据分析 : 就是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出研究对象的内在规律 . 数组
数据分析三剑客 : Numpy 数组计算dom
Pandas 表计算与数据分析ide
Matplotlib 绘图和可视化函数
1 . NumPy(Numerical Python) 是 python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算 , 此外也针对数组运算提供大量的数学函数库工具
2 . NumPy是高性能科学计算和分析的性能
3 . 安装方法 : spa
pip install numpy 3d
注意 : 示例均是在jupyter上演示的code
1 . 使用 np.array() 建立
# 导包 # 一般都将 numpy简化成np import numpy as np
1) . 一维数组的建立
np.array([1,2,3,4.5])
2) . 二维数组的建立 np.array([[1,2,3,4],[5,6,7,8]])
注意 :
3) . 使用matplotlib.pyplot获取一个numpy数组,数据来源于图片
2 . 使用 np 的 routines 函数建立
建立ndarray:
array() 将列表转换为数组,可选择显式指定dtype
arange() range的numpy版,支持浮点数
linspace() 相似arange(),第三个参数为数组长度
zeros() 根据指定形状和dtype建立全0数组
ones() 根据指定形状和dtype建立全1数组
empty() 根据指定形状和dtype建立空数组(随机值)
eye() 根据指定边长和dtype建立单位矩阵
例如 :
1 . 经常使用属性 :
2 . 经常使用方法 :
array.shape array的规格 array.ndim array.dtype array的数据规格 numpy.zeros(dim1,dim2) 建立dim1*dim2的零矩阵 numpy.arange numpy.eye(n) /numpy.identity(n) 建立n*n单位矩阵 numpy.array([…data…], dtype=float64 ) array.astype(numpy.float64) 更换矩阵的数据形式 array.astype(float) 更换矩阵的数据形式 array * array 矩阵点乘 array[a:b] 切片 array.copy() 获得ndarray的副本,而不是视图 array [a] [b]=array [ a, b ] 二者等价 name=np.array(['bob','joe','will']) res=name==’bob’ res= array([ True, False, False], dtype=bool) data[True,False,…..] 索引,只索取为True的部分,去掉False部分 经过布尔型索引选取数组中的数据,将老是建立数据的副本。 data[ [4,3,0,6] ] 索引,将第4,3,0,6行摘取出来,组成新数组 data[-1]=data[data.__len__()-1] numpy.reshape(a,b) 将a*b的一维数组排列为a*b的形式 array([a,b,c,d],[d,e,f,g]) 返回一维数组,分别为[a,d],[b,e],[c,f],[d,g] array[ [a,b,c,d] ][:,[e,f,g,h] ]=array[ numpy.ix_( [a,b,c,d],[e,f,g,h] ) ] array.T array的转置 numpy.random.randn(a,b) 生成a*b的随机数组 numpy.dot(matrix_1,matrix_2) 矩阵乘法 array.transpose( (1,0,2,etc.) ) 对于高维数组,转置须要一个由轴编号组成的元组
1、数组和标量之间的运算 a+1 a*3 1//a a**0.5 2、一样大小数组之间的运算 a+b a/b a**b 3、数组的索引: 一维数组:a[5] 多维数组: 列表式写法:a[2][3] 新式写法:a[2,3] (推荐) 数组的切片: 一维数组:a[5:8] a[4:] a[2:10] = 1 多维数组:a[1:2, 3:4] a[:,3:5] a[:,1] 4、强调:与列表不一样,数组切片时并不会自动复制,在切片数组上的修改会影响原数组。 【解决方法:copy()】
1 . 索引
一维与列表彻底一致 , 多维同理
2 . 切片
1) . 一维与列表彻底相同 , 多维同理
2) . 将数据进行反转 , 例如 : [1,2,3] --> [3,2,1]
3) . 对图片进行操做
3 . 变形
使用 reshape()函数,注意一个参数是 --- tuple !
4 . 级联
np.concatenate()
级联须要注意的点:
5 . 切割
给图片进行切割
原图片 :
经常使用函数: sum 求和 cumsum 求前缀和 mean 求平均数 std 求标准差 var 求方差 min 求最小值 max 求最大值 argmin 求最小值索引 argmax 求最大值索引
np.sort() 和 ndarray.sort() 的区别 :
随机数生成函数在np.random子包内
经常使用函数 :