(一)简介
数据分析我们常用的工具Numpy,pandas,Matplotlib库,其中Numpy库是pandas库的基础,它们主要是用来处理一维及二维的表格数据,而Matplotlib库这是数据可视化的利器。
(二)Numpy基础
引入方法:import numpy as np
(1)Numpy的定义:
官方解释:NumPy系统是Python的一种开源的数值计算扩展,这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。
简单来说:Numpy中含有矩阵matrix和数组array是NumPy里的两种数据类型,都可以用于处理行列表示的数字元素
python数组和Numpy数组区别:
(1)主要区别:numpy数组(array or matrix)创建时是固定大小,python数组(list)是动态的。更改ndarray的大小将创建一个新数组并删除原来的数组。(就是array 和list 的区别)
(2)元素类型区别:
NumPy数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。
python的List可以存放不同类型的元素。
例外情况:Python的原生数组里包含了NumPy的对象的时候,这种情况下就允许不同大小元素的数组。
(2)array 和matrix的区别
1.matrix只能是2维的,array可以是任意维数。
2.在这两个数据类型上执行相同的数学运算会得到不同的结果
对于a,b两个matrices,a*b表示矩阵乘积
矩阵乘法:
1、当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。
2、矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。
3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和
对于array来说,a*b表示逐个元素相乘
**运算符表示的含义也不同,对于maxtrix来说,a**2表示a*a
对于array来说,a**2表示数组里的数的平方
(二)Numpy和python数组
(1)打印结果不相同
(2)索引相似点
切片是左闭右开。
(3)进行数学计算不同
Numpy作为一个数据处理的库能非常好的支持一些数学运算
(4)数据存储不同
列表储存的是一维的数据,而数组则可以存储多维的数据:
(三)Numpy建立数组的方式
(1)np.array(列表)
f=np.array([[1,2],[3.4],[5,6]])
输出:
(2)np.arrange(起点,终点,步长):
注意左闭右开
(3).reshape来改变np.arrange(行,列) 的形状
a=np.arrange(12).reshape(3,4)
输出:
(4)np.random模块来创建随机一维数组
1.np.random.randn(n)来创建一个服从正太分布 (均值为0,方差为1的分布)的n个随机数一维数组,代码如下:
a=np.random.randn(3)
打印:
2.通过np.random.randint(起始数,终止数(行,列)),我们可以随机生成从起始数到终止数的n行n列数组