关于小鱼书的学习笔记第一章

第1章

Python入门

因为笔者之前已经学习过了python,所以对于小鱼书开头对于python的介绍并没有过多的学习,只是简单看了一下,做了一个简略的复习。主要重点还是放在了关于numpy和matplotlib库的介绍学习上。

首先是一个numpy和matplotlib库的简介,NumPy是用于数值计算的库,提供了很多高级的数学算法和便利的数组(矩阵)操作方法。而Matplotlib是用来画图的库。使用Matplotlib能将实验结果可视化,并在视觉上确认深度学习运行期间的数据。

学习numpy库的第一步便是生成NumPy数组,需要使用np.array()方法。np.array()接收Python列表作为参数,生成NumPy数组(numpy.ndarray)。

首先第一步利用np.array()生成两个数组,分别命名为数组x与数组y,接下来我们需要学习数组的运算:首先要保证数组x和数组y的元素个数是相同的(假设两者均是元素个数为3的一维数组)。当xy的元素个数相同时,可以对各个元素进行算术运算。如果元素个数不同,程序就会报错,所以元素个数保持一致非常重要。另外,“对应元素的”的英文是element-wise,所以数组元素的运算也被称为element-wise运算。

NumPy数组不仅可以进行element-wise运算,也可以和单一的数值(标量)组合起来进行运算。此时,需要在NumPy数组的各个元素和标量之间进行运算,这个功能也被称为广播。

NumPy不仅可以生成一维数组(排成一列的数组),也可以生成多维数组。基本上将二维数组称为“矩阵”,将三维数组及三维以上的数组称为“张量”或“多维数组”。

此外,Python等动态类型语言一般比C和C++等静态类型语言(编译型语言)运算速度慢。实际上,如果是运算量大的处理对象,用 C/C++写程序更好。为此,当 Python中追求性能时,人们会用C/C++来实现处理内容。Python则承担“中间人”的角色,负责调用那些用 C/C++写的程序。NumPy中,主要的处理也都是通过C或C++实现的。因此,我们可以在不损失性能的情况下,使用 Python便利的语法。

之后学习numpy与matplotlib中的pyplot模块合作绘制图形,以下为一个实例

import numpy as np 
import matplotlib.pyplot as plt 
# 生成数据 
x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到6的数据 
y = np.sin(x) 
plt.plot(x, y) 
plt.show()

这个代码便可以绘制出sin函数的图形 ,若是在刚才的sin函数的图形中,我们尝试追加cos函数的图形,并尝试使用pyplot的添加标题和x轴标签名等其他功能的话,可以尝试以下代码

import numpy as np 
import matplotlib.pyplot as plt 
# 生成数据 
x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到6的数据 
y1 = np.sin(x)  
y2 = np.cos(x) 
# 绘制图形 
plt.plot(x, y1, label="sin") 
plt.plot(x, y2, linestyle = "--", label="cos") # 用虚线绘制 
plt.xlabel("x") # x轴标签 
plt.ylabel("y") # y轴标签 
plt.title('sin & cos') # 标题 
plt.legend() 
plt.show()

 如果读者还想导入显示图像,那么pyplot 中还提供了用于显示图像的方法 imshow()。另外,也可以使用matplotlib.image模块的imread()方法读入图像。这便是笔者认为第一章的学习内容了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值