写在开头:因为也开始了深度学习课程的学习,对于很多东西还要慢慢理解,所以也打算开一个这个系列来分享一下自己的理解。
深度学习系列
对于本系列的学习内容安排的话,主要涉及的是对于图像识别方面的内容,或许我会在学完后在来写一个目录,今天的内容就是对于python中numpy使用的一些汇总,主要学习来源附在最后的参考文献。
Numpy学习
在使用Numpy之前,我们想进行一些矩阵运算往往只能通过一个又一个的for循环去完成,但有了Numpy库的支持,我们得以用简单的语句完成繁琐的for循环计算,下面我们结合代码开始今天的分享,
首先加载numpy包,
import numpy as np
数组的产生与查看
a = np.array([1, 2, 3])
print("数组的格式",type(a))
print("数组元素的类型",a.dtype)
print("数组的规模",a.shape)
print(a[0], a[1], a[2])
a[0] = 5 #修改值
print("打印数组",a)
b = np.array([[1,2,3],[4,5,6]]) #创建二元数组
print("数组的规模",b.shape)
print(b[0, 0], b[0, 1], b[1, 0]) #打印二元数组
数组的格式 <class 'numpy.ndarray'>
数组元素的类型 int32
数组的规模 (3,)
1 2 3
打印数组 [5 2 3]
数组的规模 (2, 3)
1 2 4
方便的矩阵生成
其实说是矩阵,也跟数组差不多,numpy提供了不少快捷的矩阵生成函数,
a = np.zeros((2,2)) #产生一个0矩阵
print("零矩阵\n",a)
b = np.ones((1,2)) #产生全为1的矩阵
print("1矩阵\n",b)
c = np.full((2,2), 7) #填充
print("填充矩阵\n",c)
d = np.eye(2) #对角线
print("对角矩阵\n",d)
e = np.random.random((2,2)) #0-1的随机数
print("0,1随机矩阵\n",e)
零矩阵
[[0. 0.]
[0. 0.]]
1矩阵
[[1. 1.]]
填充矩阵
[[7 7]
[7 7]]
对角矩阵
[[1. 0.]
[0. 1.]]
0,1随机矩阵
[[0.2336035 0.72817244]
[0.55966474 0.64770182]]
numpy数组的同步映射与数组选取
这里值得一提的是numpy在数组赋值过后,对赋值后的数组进行数值的变动,会影响原矩阵对应数值的变动,
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
b = a[:2, 1: