利用Python进行数据分析第二天
January
通用函数:一种在ndarry中逐元素进行操作的函数
sqrt:开平方根函数
exp:指数函数
numpy.maximum:逐个元素地将x和y中元素的最大值计算出来
February
向量化数组操作:和纯Python数据处理相比,使用numpy可以大量节省运算时间
np.arange(-5,5,0.01) //np.arange相当于numpy内置的range,其功能相较于range更加强大,其step可以设置为小数
March
将某个条件逻辑(判断)作为数组操作的开关:numpy.where()函数
where()函数的典型用法是根据一个数组来生成一个新的数组:假设你有一个随机生成的矩阵数据(命名为arr),并且你想将其中的正值都替换为2,所有的负值替换为-2,可以使用np.where()来实现
np.where(arr>0,2,-2)
April
数学和统计方法:
1.生成一些符合正态分布的随机数:arr=np.random.randn(5,4)
2.numpy的基础数组统计方法
mean()方法—arr.mean(axis=1) //计算每行的平均数
sum()方法—arr.sum(axis=0) //计算每列之和
arr.cumsum() //累加,结果不聚合,会产生中间计算值
arr.cumprod() //累乘,结果不聚合,会产生中间计算值
arr.cumsum(axis=0)
arr.cumprod(axis=1)
May
布尔值数组的方法:对于布尔值数组,常用的方法有any和all any():检查数组中是否至少有一个True all():检查是否每个值都是True
June
数组排序:arr.sort() //简单理解为直接在原数组上排序
进阶用法:arr,sort(1) //按行为单位,分别排序
计算一个数组的分位数,并选出分位数所对应的值:large_arr[int(0.05*len(large_arr))] //求排序后arr数组5%处的数是哪个
找出数组中不重复的元素,并排序返回:np.unique()方法
检查一个数组中的值是否在另一个数组中:np.in1d()方法。//举例np.in1d(arr,[2,3,6])
July
数组在默认情况下是以未压缩的格式进行存储的,文件的后缀名是.npy
例如:np.save(‘some_array’,arr)
硬盘上的数组可以使用np.load进行载入
例如 np.load(‘some_array.npy’)
你可以使用np.savez将数组作为参数传递给该函数,用于在未压缩文件中保存多个数组
例如 np.savez(‘array_archive.npz’,a=arr,b=arr) //这个文件中有两个数组,分别是a和b
当使用arch=np.load(‘array_archive.npz’)载入array_archive.npz文件时,计算机会获得一个字典对象arch
我们可以通过字典对象arch,轻松调用a,b数组
例如 arch[‘b’]
August
线性代数
numpy中的矩阵点乘积方法:x.dot(y)或者是np.dot(x,y)
矩阵取逆:inv(arr)
September
伪随机数生成:np.random.normal((size=4,4)) //np.random.normal()方法可以指定期望值和标准差
而np.random.randn(4,4)只能从标准正态分布中选取伪随机数
伪随机种子:np.random.seed(1234)
np.random使用的是全局随机种子,我们也可以避免全局状态,使用numpy.random.RandomState()创建一个随机数生成器
使用该方法生成的随机数是固定的
October
随机漫步:
什么是随机漫步?从0开始,step为-1或者是1,且两者发生的概率相等
random.randint(0,1)的范围是[0,1]
而np.random.randint(0,1)的范围是[0,1)
一次模拟多次随机漫步:
draws=np.random.randint(0,2,size(nwalks,nsteps))
steps=np.where(draws>0,1,-1)
walks=steps.cumsum(1)

浙公网安备 33010602011771号