第一次学习numpy笔记(2)

第一次学习numpy笔记(2)

因为在疫情期间挺久没静下心来学习,不知道自己学了什么,所以挺久没更新记录自己学习成果的博客,感到很惭愧,接着上次的笔记,后来整理了一下下后面3天学习numpy的笔记,以后争取每周写一篇博客记录自己的学习状况,能够清楚知道自己学会了什么,下面就是我后3天学习numpy的笔记。如果有错误希望各位大佬指出,谢谢。
第四天学习成果:随机数函数

#随机数函数
import numpy as np
#创建浮点数随机数组,均匀分布,里面的参数为维度信息,取值为[0,1)
sn = np.random.rand(3, 4, 5)
print("{0}\n".format(sn))
print('.....')
#创建浮点数随机数组,标准正态分布,里面的参数为维度信息
a = np.random.randn(3, 4, 5)
print("{0}\n".format(a))
print('.....')
#np.random.randint(low, high, shape)生成随机整数数组,取值范围是[low, high),shape为维度信息
b = np.random.randint(100, 200, (3, 4))
print("{0}\n".format(b))
print('.....')
#种子函数使得前后随机生成的数组相同
np.random.seed(10)
print("{0}\n".format(np.random.randint(100, 200, (3, 4))))
np.random.seed(10)
print("{0}\n".format(np.random.randint(100, 200, (3, 4))))
print('.....')

#改变原数组元素的顺序,这个函数改变原数组(即打乱了顺序而且改变原数组)
a = np.random.randint(100, 200, (3, 4))
print("{0}\n".format(a))
np.random.shuffle(a)
print("{0}\n".format(a))
print('.....')
#创建一个新数组相较于原数组a改变了数据顺序,这个函数不改变原数组(即打乱了顺序但是不改变原数组)
a = np.random.randint(100, 200, (3, 4))
print("{0}\n".format(a))
np.random.permutation(a)
print("{0}\n".format(a))
print("{0}\n".format(np.random.permutation(a)))
print('.....')

#np.random.choice(a, size, replace=True, p)其中size代表形状,replace=True代表可出现重复数字,p代表抽取概率
a = np.random.randint(100, 200, (8))
print("{0}\n".format(a))
b = np.random.choice(a, (3, 2))
print("{0}\n".format(b))
b = np.random.choice(a, (3, 2), replace=False)
print("{0}\n".format(b))
#使用这个函数时出现了'p' must be 1-dimensional错误,翻译过来就是输入字典值必须是一维数据,发现我开始写的p=b/np.sum(a)其中b为二维数组
#思考了一下可以配合a.flatten()降维打击使用再用a.reshape()变回来以达到按概率得到随机数据的目的
b = np.random.choice(a, (3, 2), replace=False, p=a/np.sum(a))
print("{0}\n".format(b))
print('.....')

#np.random.uniform(low, high, size)low起始值,high结束值,size形状,取值为[0,10),获得均匀分布数组
u = np.random.uniform(0, 10, (3, 4))
print("{0}\n".format(u))
#np.random.normal(loc, scale, size)loc均值,scale标准差,size形状,获得正态分布数组
n = np.random.normal(10, 5, (3, 4))
print("{0}\n".format(n))
#np.random.poission(lam, size)lam随机事件发生率,size形状,获得泊松分布数组
x = np.random.poisson(0.5, (3, 2))
print("{0}\n".format(x))

第五天学习成果:统计函数

#统计函数
import numpy as np

a = np.arange(15).reshape((3, 5))
print("{0}\n".format(a))
#np.sum(a, axis=None)根据定轴axis计算数组中元素和,其中axis=None代表所有元素,和axis=0不一样,仔细对比下列3个输出弄懂axis=0和axis=1所操作的数据
print("{0}\n".format(np.sum(a)))
print("{0}\n".format(np.sum(a, axis=0)))
print("{0}\n".format(np.sum(a, axis=1)))
print('.....')
#np.mean(a, axis=None)根据定轴axis计算数组中元素期望,axis=1代表在第一列上从上到下操作每一行的数据,axis=0代表在第一行上从左到右操作每一列的数据
print("{0}\n".format(np.mean(a, axis=1)))
print("{0}\n".format(np.mean(a, axis=0)))
print('.....')
#np.average(a, axis=None, weights=None)根据定轴axis计算加权平均值
print("{0}\n".format(np.average(a, axis=0, weights=[10, 5, 1])))
print("{0}\n".format(np.average(a, axis=1, weights=[10, 5, 1, 4, 5])))
print('.....')
#np.std(a, axis=None)根据定轴axis计算标准差
print("{0}\n".format(np.std(a)))
print("{0}\n".format(np.std(a, axis=1)))
print("{0}\n".format(np.std(a, axis=0)))
print('.....')
#np.var(a, axis=None)根据定轴axis计算方差
print("{0}\n".format(np.var(a)))
print("{0}\n".format(np.var(a, axis=1)))
print("{0}\n".format(np.var(a, axis=0)))
print('.....')

b = np.arange(15, 0, -1).reshape((3, 5))
print("{0}\n".format(b))
#获得最大的元素值
print("{0}\n".format(np.max(b)))
#先把b转换为对应的一维数组之后返回对应一维坐标,但是b原数组不改变
print("{0}\n".format(np.argmax(b)))
print("{0}\n".format(b))
#重塑多维数组后返回最大值多维坐标,原数组不改变
print("{0}\n".format(np.unravel_index(np.argmax(b), b.shape)))
print("{0}\n".format(b))
#计算最大值最小值的差
print("{0}\n".format(np.ptp(b)))
#计算中位数
print("{0}\n".format(np.median(b)))

第六天学习成果:梯度函数

#梯度函数
import numpy as np
from PIL import Image
#梯度是指连续值之间的变化率,即斜率
a = np.random.randint(0, 20, (5))
print("{0}\n".format(a))
print("{0}\n".format(a))
#不改变原数组a且生成浮点数数组
print("{0}\n".format(np.gradient(a)))
#加入输出的a为[15, 3, 12, 13, 14]则np.gradient(a)为[-12., -1.5, 5., 1., 1.]计算方法为3-15/1, 12-15/2, 13-3/2, 14-12/2, 14-13/1
b = np.random.randint(0, 50, (3, 5))
print("{0}\n".format(b))
print("{0}\n".format(np.gradient(b)))
print('.....')

学习到这numpy库里面的函数也弄清楚的差不多了,然后就开始准备学习panda库了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值