欢迎使用CSDN-markdown编辑器

来源:互联网 发布:2016淘宝刷钻价格表 编辑:程序博客网 时间:2024/05/29 12:30

NumPy

标签: Python 数据分析


NumPy是Python科学计算的基础包,提供以下功能:

  • 快速高效的多维数组对象ndarray
  • 用于对数组执行元素级计算以及直接对数组执行数学运算的函数
  • 用于读写硬盘上基于数组的数据集的工具
  • 线性代数运算、傅里叶变换,以及随机数生成
  • 用于将C、C++、Fortran代码集成到Python的工具

导入numpy库


    import numpy as np

创建数组


直接创建数组

np_a=np.array([[1,2,3],[4,5,6]])

通过列表创建数组

    list=[[1,2,3],[4,5,6]]    np_b=np.array(list,dtype=np.float)

np.array()中dtype用于指定数据类型:bool,int,float等

查看数组信息

np_a.shape:返回数字的形状(行数,列数)
np_a.ndim:返回数组的维度数
np_a.dtype:返回数组的元素数据类型
np_a.itemsize:返回数组的元素所占的存储大小
np_a.size:返回数组的元素总个数


函数介绍


常用数组生成函数

np.zeros([2,4]):生成2行4列的全0数组
np.ones([2,4]):生成2行4列的全1数组
np.random.rand(2,4):生成一个2行4列的数组,每个元素为0到1之间的随机数(行列参数可省略,默认生成一个0到1之间的随机数)
np.random.randint(1,10,3):生成一个3个元素的数组,每个元素为1到10之间的随机整数(个数参数可省略,默认为1)
np.random.randn(2,4):生成一个2行4列的数组,元素服从标准正态分布(行列参数可省略,默认生成一个数)
np.random.choice([1,2,3,4,5,6]):随机选择数组中的一个元素
np.random.beta(1,10,3):生成一个3个元素的数组,每个元素在1到10之间,服从beta分布(个数参数可省略,默认为1)当然random中还提供了其他分布函数
np.arange(1,10,2):生成一个一维数组,元素为差为2的等差数列,范围1到10(不包含10)

常用的数组操作

np.exp(np_a):得到同尺寸数组,相应元素为enp_a
np.sqrt(np_a):得到同尺寸数组,对相应元素开平方
np.sin(np_a):得到同尺寸数组,对相应元素求sin值
np.log(np_a):得到同尺寸数组,对相应元素求log值(底数为e)

np_a.reshape(3,2):把数组np_a转换为3行2列
np_a.sum(axis=0):axis=0时对数组np_a的列求和,axis=1时对数组np_a的行求和
np_a.max(axis=0):axis=0时求每列的最大值,axis=1时求每行的最大值
np_a.min(axis=0):axis=0时求每列的最小值,axis=1时求每行的最小值

两个数组可以直接执行+、-、*、/操作,结果为对应元素的加、减、乘、除
np_a ** 2 :得到同尺寸数组,对每个元素求平方
np_a.transpose():矩阵的转置
np.dot(np_a,np_b):矩阵的乘法(np_a的列等于np_b的行)
inv():求矩阵的逆矩阵
det():求矩阵的行列式
eig():求矩阵的特征值和特征向量,返回两个数组,第一个为特征值数组,第二个为特征向量矩阵