numpy
Numpy Numerical Python 是python语言中做科学计算的基础库,重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型,多维数组上执行的数值运算。
数组和列表的区别:数组中存储的数据元素类型必须统一,如果有不统一按照优先级统一;’优先级:字符串>浮点型>整数
numpy.array([x,x,x]) # 返回列表中元素的一维数组
numpy.ones((3,4)) # 返回全1 的3行4列二维数组
numpy.linspace(0,100,num=20) # 一维的等差数列数组,0-100 取20个数字的等差数列一维数组
numpy.arange(10,50,step=2) # 返回10-50之间,步长为2 的等差数列数组
numpy.random.randint(0,100,size=(5,3)) # 返回1-100之间任意数组,5行3列的二维数组
numpy.zeros((2,3)) # 返回2行3列的全零数组
numpy.eye(4) # 返回4行4列的单位矩阵
numpy.diag((2,3,4)) # 返回对角阵
numpy.logspace(1,10,31) # 返回等比数组,默认以e为底,返回31个数。
numpy.logspace(1,6,2,base=2) # 返回以2为底的等比数组,返回两个数。start 2^1,end 2^6.
numpy.random.randint(1,100,size=(2,3,4)) # 返回三维数组,取值范围为1-100的随机整数
arr = np.random.randint(0,100,size=(5,6))
arr.shape # 返回数组的形状 (5,6)
arr.ndim # 返回数组的维度 2
arr.size # 返回数组中元素的个数 30
arr.dtype # 返回数组中元素的类型 dtype("int64")
numpy的数据类型
-
-
- array(dtype=?):可以设定数据类型
- arr.dtype = '?':可以修改数据类型 # arr.dtype = 'uint8' #修改数组的元素类型
-
#创建一个数组,指定数组元素类型为int32
arr = np.array([1,2,3],dtype='int32')
-
arr = np.random.randint(1,100,size=(5,6))
arr[1] # 取出了numpy数组中的下标为1的行数据,下标从0开始
arr[1][2][3] # 三维数组的索引,下标从零开始
arr[[1,3,4]] # 取出多行
arr[0:2] # arr[行切片] 切除前两行数据
arr[:,0:2] # arr[行切片,列切片] 切除前两列数据,逗号分隔维度
arr[0:2,0:2] # 切出前两行的前两列的数据
arr[::-1] # 将数组的行倒置
arr[:,::-1] # 将数组的列倒置
arr[::-1,::-1] # 所有元素倒置
arr.reshape((30,)) # 将二维的数组变形成1维
级联:将多个数组进行拼接,只能在同样维度的两个数组之间使用
axis轴向:0:列; 1:行
- mean(axis=0)计算的是每一列平均值,
- mean(axis=1)计算的是每一行平均值。
- drop(0,axis=0)删除行,
- drop([‘col1’],axis=1)删除列。
常用的数学函数:numpy提供了标准的三角函数sin(),cos(),tan(). numpy.around(a,decimals)函数返回指定数字的四舍五入值, a:数组; decinals:舍入的小数位数,默认值为0,如果为负数,整数将四舍五入到小数点左侧的位置
常用的统计函数:
-
- numpy.amin() 和 numpy.amax(),用于计算数组中的元素沿指定轴的最小、最大值。
- numpy.ptp():计算数组中元素最大值与最小值的差(最大值 - 最小值)。
- numpy.median() 函数用于计算数组 a 中元素的中位数(中值)
- 标准差std():标准差是一组数据平均值分散程度的一种度量。
- 公式:std = sqrt(mean((x - x.mean())**2))
- 如果数组是 [1,2,3,4],则其平均值为 2.5。 因此,差的平方是 [2.25,0.25,0.25,2.25],并且其平均值的平方根除以 4,即 sqrt(5/4) ,结果为 1.1180339887498949。
- 方差var():统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数,即 mean((x - x.mean())** 2)。换句话说,标准差是方差的平方根。
numpy中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是ndarray对象,一个矩阵一个行列元素艾烈成的矩阵阵列
numpy.matlib.identity()函数返回给定大小的单位矩阵。单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1,除此以外全部为0
arr = numpy.eye(6) # 返回一个标准的单位矩阵
arr.T # 转置矩阵
numpy.dot(a, b, out=None) # a : ndarray 数组, b : ndarray 数组
第一个矩阵第一行的每个数字(2和1),各自乘以第二个矩阵第一列对应位置的数字(1和1),然后将乘积相加( 2 x 1 + 1 x 1),
得到结果矩阵左上角的那个值3。也就是说,结果矩阵第m行与第n列交叉位置的那个值,等于第一个矩阵第m行与第二个矩阵第n列,对应位置的每个值的乘积之和。