前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Numpy学习笔记(三)

Numpy学习笔记(三)

作者头像
写一点笔记
发布2022-08-11 16:56:45
2450
发布2022-08-11 16:56:45
举报
文章被收录于专栏:程序员备忘录程序员备忘录

通过前两次的学习,我们已经对numpy这个工具有了相当的认识了,基本可以满足我们日常数学计算的功能了。那么还有那些地方需要我们补充呐,老实说咋也是摸着石头过河,咋也不晓得,只能说我们一起探索吧。

1.数组的一些运算

对于一个数组来说,我们经常需要计算其绝对值,我们就可以采用np.abs()来计算。

代码语言:javascript
复制
    tian=np.linspace(-10,10,20)
    print(tian)
    tian=np.abs(tian)
    print(tian)

除了绝对值之外,我们可能还需要计算平方根,那就用np.sqrt()吧

代码语言:javascript
复制
    tian=np.linspace(1,3,3)
    tian=tian*tian
    print(tian)
    print(np.sqrt(tian))

当然咋上边这种姿势计算平方太low了,快用np.square()吧

代码语言:javascript
复制
    tian=np.square(tian)
    print(tian)

求对数也是很简单,so 看这里,当然这里只提供一个简单的示例。

代码语言:javascript
复制
    tian=np.arange(1,10,1)
    print(tian)
    print(np.log10(tian))

当然还有计算元素的天花板呀还有地花板什么的,np.ceil(),np.floor()这个就比较简单了,这里就不说了。在对元素进行四舍五入的时候用np.rint()。

代码语言:javascript
复制
    tian=np.rint(tian)
    print(tian)

对于元素的指数值来说,采用方法np.exp(),也就是e^x的这种方式。

代码语言:javascript
复制
    tian=np.arange(1,3,1)
    tian=np.exp(tian)
    print(tian)

Numpy居然也帮我们判断了元素的正负号,np.sign()

代码语言:javascript
复制
    tian=np.linspace(-1,5,6)
    print(np.sign(tian))

这块我们也可以将两个数组进行合并,然后将对应元素的最大值合并成一个新的数组。同样的我们可以采用np.minmum()函数形成最小元素的新数组。同样的我们可以对两个数组进行mod运算,将最终的余数作为新的数组。没有想到的是numpy居然还提供了符号拷贝的函数,np.copysign(a,b)表示将b的符号拷贝到a数组对应的位置。不晓得现实有这种需求么。

代码语言:javascript
复制
    tian=np.linspace(-1,5,6)
    zhang=np.linspace(2,6,6)
    print(np.sign(tian))
    print(np.maximum(tian,zhang))

2.文件的操作

有时候吧,计算一次结果挺不容易的,半途而废就太可惜了。所以numpy提供了文件操作的功能,看这里。

1、保存为文件

代码语言:javascript
复制
tian=np.arange(1,100,1)
#参数这里的tianjingle.txt是文件名称
#fmt元素的格式,%d表示整数,%.2f表示浮点数保留两位小数
np.savetxt('tianjingle.txt',tian,fmt="%d",delimiter=",")

2、读取文件

#参数分别为文件名称,dtype是读取出来的数据的类型,delimiter表示数据的分割,unpack表示是否填充到不同的字段中

代码语言:javascript
复制
    tian=np.loadtxt("tianjingle.txt",dtype=np.int64,delimiter=",",unpack=False)
    print(tian)

文件咋学这些就够了。

3.numpy的一些统计函数

代码语言:javascript
复制
    #平均值
    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

代码语言:javascript
复制
print(np.gradient(tian))

5.Numpy在图片的上的小应用

代码语言:javascript
复制
    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()

安了~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 写点笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档