Numpy学习笔记(三)

通过前两次的学习,我们已经对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()

安了~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值