Numpy学习笔记(三)

共 2397字,需浏览 5分钟

 ·

2021-07-08 16:51

通过前两次的学习,我们已经对numpy这个工具有了相当的认识了,基本可以满足我们日常数学计算的功能了。那么还有那些地方需要我们补充呐,老实说咋也是摸着石头过河,咋也不晓得,只能说我们一起探索吧。
1.数组的一些运算
对于一个数组来说,我们经常需要计算其绝对值,我们就可以采用np.abs()来计算。
    tian=np.linspace(-10,10,20)    print(tian)    tian=np.abs(tian)    print(tian)
除了绝对值之外,我们可能还需要计算平方根,那就用np.sqrt()吧
    tian=np.linspace(1,3,3)    tian=tian*tian    print(tian)    print(np.sqrt(tian))
当然咋上边这种姿势计算平方太low了,快用np.square()吧
    tian=np.square(tian)    print(tian)
求对数也是很简单,so 看这里,当然这里只提供一个简单的示例。
    tian=np.arange(1,10,1)    print(tian)    print(np.log10(tian))
当然还有计算元素的天花板呀还有地花板什么的,np.ceil(),np.floor()这个就比较简单了,这里就不说了。在对元素进行四舍五入的时候用np.rint()。
    tian=np.rint(tian)    print(tian)
对于元素的指数值来说,采用方法np.exp(),也就是e^x的这种方式。
    tian=np.arange(1,3,1)    tian=np.exp(tian)    print(tian)
Numpy居然也帮我们判断了元素的正负号,np.sign()
    tian=np.linspace(-1,5,6)    print(np.sign(tian))
这块我们也可以将两个数组进行合并,然后将对应元素的最大值合并成一个新的数组。同样的我们可以采用np.minmum()函数形成最小元素的新数组。同样的我们可以对两个数组进行mod运算,将最终的余数作为新的数组。没有想到的是numpy居然还提供了符号拷贝的函数,np.copysign(a,b)表示将b的符号拷贝到a数组对应的位置。不晓得现实有这种需求么。
    tian=np.linspace(-1,5,6)    zhang=np.linspace(2,6,6)    print(np.sign(tian))    print(np.maximum(tian,zhang))
2.文件的操作
有时候吧,计算一次结果挺不容易的,半途而废就太可惜了。所以numpy提供了文件操作的功能,看这里。
1、保存为文件
tian=np.arange(1,100,1)#参数这里的tianjingle.txt是文件名称#fmt元素的格式,%d表示整数,%.2f表示浮点数保留两位小数np.savetxt('tianjingle.txt',tian,fmt="%d",delimiter=",")
2、读取文件
    #参数分别为文件名称,dtype是读取出来的数据的类型,delimiter表示数据的分割,unpack表示是否填充到不同的字段中
    tian=np.loadtxt("tianjingle.txt",dtype=np.int64,delimiter=",",unpack=False)    print(tian)
文件咋学这些就够了。
3.numpy的一些统计函数
    #平均值    print(np.mean(tian))    #加权平均值    print(np.average(tian))    #标准差    print(np.std(tian))    #计算方差    print(np.var(tian))    #最大值与最小值的差    print(np.ptp(tian))    #中位数    print(np.median(tian))
4.numpy计算梯度
Numpy提供了gradient()函数提供了梯度计算的功能,我们试试看哈。算了,这块以后用到了再研究吧,梯度的最后都是减法,想着很简单,但是为了一个比较准确的原因。有时候需要进行一些统计工作。作者这里都是等差数列,所以梯度为1
print(np.gradient(tian))

5.Numpy在图片的上的小应用
    file="C:\\Users\\Administrator\\Desktop\\新建文件夹\\IMG_20201002_161629.jpg"    tian=np.array(Image.open(file).convert('L'))    tian=tian.astype(np.int8)    image=Image.fromarray(tian)    image.save("tianj.png")    im=Image.open("tianj.png")    im.show()

安了~





浏览 40
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报