2021-07-02

7.1数据分析学习笔记

#一、random模块
#1、seed:设置指定随机数生成时所用算法开始的整数值,如果使用相同的seed()值,生成的随机数是相同的.在没有设置seed的情况下,系统自动根据当前时间戳来设置seed
import numpy as np
np.random.seed()
print(np.random.rand())
print(np.random.randint(1,10))
#2、rand:生成(0,1)之间的随机数,可以指定维度
np.random.rand(2,5,3)
#3、randn:生成均值(u)为0,标准差(σ)为1的标准生态分布的值,可以指定维度
np.random.randn(3,2,5)
print("="*30)
#4、randint:生成指定范围内的随机数,可以指定维度
a1 = np.random.randint(1,10,size = (2,10)).flatten()
print(a1)
#5.choice:在数组中随机选择值,可指定维度(当来源数组只有一个值时,在(0,值)间随机,来源数组有多个值时,在来源数组中选择)
print(np.random.choice(a1,size = (2,6)))
a2 = np.arange(0,10)
print(a2)
print(np.random.choice(a2,size = (2,6)))
#6、shuffle:将原数组打乱,不返回任何值
a3 = np.arange(0,10)
print(a3)
np.random.shuffle(a3)
print(a3)
#二、axis的理解
x1 = np.arange(0,8)#axis = 0指最外层,axis = 1指内部第一层,axis=2指内部第二层
np.random.shuffle(x1)
x=x1.reshape(2,2,2)
print(x)
print("="*30)
print(x.sum(axis = 0))#axis=0时将最外轴对应位置元素相加;axis=1时将第一层内部元素直接相加
print("="*30)
print(x.max(axis=0))#axis=0时两个块相比较,axis=1时块内部两个数组相比较,axis=2时数组内部两个元素相比较
print("="*30)
print(np.delete(x,0,axis=2))#0表示删除第1个,axis=0表示删除块,axis=1表示删除两个块的第一个数组,axis=2表示删除4个数组的第一个元素
#三、一元函数
import numpy as np
a = np.random.uniform(-10,10,size=(3,4))#unifrom为平均分布范围内,随机取值
print(a)
print("="*30)
print('abs')
print(np.abs(a))#abs:绝对值函数
print("="*30)
print('sqrt')
print(np.sqrt(a))#sqrt:开方函数(默认正值)
print("="*30)
print('square')
print(np.square(a))#square:平方函数
print("="*30)
print('exp')
print(np.exp(a))#exp:计算指数e^a
print("="*30)
print('log')
print(np.log(a))#log:以e为底计算对数值
print(np.log10(a))#log:以10为底计算对数值
print(np.log2(a))#log:以2为底计算对数值
print(np.log1p(a))#log:以(1+a)为底计算对数值
print("="*30)
print('sign')
print(np.sign(a))#sign:标签化,大于0的变成1,等于0的不变,小于0的变成-1
print("="*30)
print('ceil')
print(np.ceil(a))#ceil:在数轴上向正无穷大方向取整(向上取整)。
print("="*30)
print('floor')
print(np.floor(a))#ceil:在数轴上向无负穷大方向取整(向下取整)。
print("="*30)
print('rint')
print(np.rint(a))#rint:四舍五入
print('round')
print(np.round(a))#round:四舍五入
print("="*30)
print('modf')
print(np.modf(a)[0])#modf:将整数与小数分隔开,成为两个数组
print(np.modf(a)[1])
print("="*30)
print('isnan')
print(np.isnan(a))#isnan:判断是否是nan
print("="*30)
print('isinf')
print(np.isinf(a))#isinf:判断是否是inf
print("="*30)
print('三角函数')
print(np.cos(a))
print("="*30)
print('反三角函数')
print(np.arccos(a))
#四、二元函数
import numpy as np
x = np.random.randint(1,10,size=(2,2,2))#unifrom为平均分布范围内,随机取值
y = np.random.randint(1,10,size=(2,2,2))
print(x)
print(y)
print("="*30)
print(np.add(x,y))#add:数组与数组或数字相加
print("="*30)
#np.subtract:减法运算(-)
#np.negative:负数运算(加个负号-)
#np.multiply:乘法运算(*)
#np.divide:除法运算(/)
#np.floor_divide:取整运算(//)
#np.mod:取余运算(%)
#greater,greater_equal,less,less_equal,equal,not_equal:分别对应:>,>=,<,<=,=,!=
print(x[np.greater_equal(x,3)])
#logical_and:或运算(&)(交集)
print(x[np.logical_and(x>0,x<5)])
#logical_or:与运算(\)(并集)
#np.subtract:减法运算
#np.subtract:减法运算
#四、聚合函数
a = np.random.randint(-10,10,size = (2,4,2))
print(a)
print("="*30)
#np.sum:求和(NAN安全版本:nansum)
print(np.sum(a,axis=0))
print("="*30)
#np.prod:求积(NAN安全版本:nanprod)
print(np.prod(a,axis=0))
print("="*30)
#np.mean:求平均值(NAN安全版本:nanmean)
print(np.mean(a))
print("="*30)
#np.std:求标准差(NAN安全版本:nanstd)
print(np.std(a,axis=1))
print("="*30)
#np.var:求方差(NAN安全版本:nanvar)
print(np.var(a,axis=1))
print("="*30)
#np.min:求最小值(NAN安全版本:nanmin)
print(np.min(a,axis=1))
print("="*30)
#np.max:求最大值(NAN安全版本:nanmax)
print(np.max(a,axis=1))
print("="*30)
#np.argmin:求最小值索引(NAN安全版本:nanargmin)
print(np.argmin(a,axis=0))
print("="*30)
#np.argmax:求最大值索引(NAN安全版本:nanargmax)
print(np.argmax(a,axis=1))
print("="*30)
#np.median:求中位数(NAN安全版本:nanmedian)
print(np.median(a,axis=1))
#五、布尔判断函数
a = np.random.randint(-10,10,size = (2,4,2))
print(a)
x = np.array([0,3,4])
print(a.all())#all函数当括号里全为真时,返回true
print(x.all())#数组里存在0元素,为false
print(np.all(a==0))
print(a.any())#any函数当括号里存在真时,返回true
print(x.any())
print(np.any(a==0))
#六、通用函数-排序
#1、np.sort:对指定轴进行排序,默认对最后一个轴(最里面)进行排序(从小到大),np.sort(a)对数组本身不会进行修改,a.sort()会对数组进行修改
# a = np.random.randint(1,10,size = (2,2,2))
# print(a)
# print(np.sort(a,axis=0))
# print(a)
# a.sort()
# print(a)
# print('='*30)
#2、np.argsort:返回排序后的下标(索引,从小到大)
a = np.random.randint(1,10,size = (2,2,2))
print(a)
print(np.argsort(a))
#3、降序排序
print(-np.sort(-a))
a = np.arange(0,10)
indexes = np.argsort(-a)
print(indexes)
a.take(indexes)#take函数:从数组中根据index取出对应位置的值
#七、其他通用函数
#1、np.apply_along_axis:沿着某个轴执行指定的函数
a = np.random.randint(0,10,size=(2,5))
print(a)
print(np.apply_along_axis(lambda x:x[np.logical_and(x!=x.max(),x!=x.min())].mean(),axis = 1,arr=a))
#去掉最大值,去掉最小值,求平均值的两种写法
a = np.random.randint(0,10,size=(2,5))
print(a)
print('='*30)
def get_mean(x):
    y = x[np.logical_and(x!=x.max(),x!=x.min())].mean()
    return(y)
    print('='*30)
print(np.apply_along_axis(get_mean,axis=1,arr=a))
print('='*30)
#2、np.linspace:用来将指定区间内的值平均分为多少份
np.linspace(0,10,4)
3、np.unique:返回数组中的唯一值(即将数组去重返回),并可返回每个值出现的次数
a = np.random.randint(0,10,size = (2,5))
print(a)
print(np.unique(a))
print(np.unique(a,return_counts=True))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值