目录
1、前言
机器学习中数据的处理往往影响着一个demo的好坏。例如图片、音频或者文本数据传入到神经网络中会被转化为Tensor类型,Tensor其实就是高维数组。Python中的Numpy包提供了一种便携处理矩阵数据的办法。
2、Numpy操作
2.1、创建一个三行四列的矩阵
import numpy as np
print(np.zeros((3, 4)))
np中的zeros方法可以把每个元素初始化为0
同样,我们也可以把每个元素初始化为1
import numpy as np
print(np.ones((3, 4)))
当然,也可以指定元素,这里指定一个2*2的矩阵,第一行元素为1 2 第二行元素为3 4
import numpy as np
print(np.array([[1, 2], [3, 4]]))
有些情况会用到随机数组,同样类似于上述方法,这里通过random.random方法创建了一个0~1分布的2*2矩阵
import numpy as np
print(np.random.random((2, 2)))
2.2 查看矩阵大小
通过shape方法可以查看矩阵的大小
比如这里通过随机数创建了一个2*2矩阵,经过array.shape操作处理后就是(2,2);
array.size是查看矩阵的个数,这里经过array.size处理后返回 4 即矩阵有4个元素
import numpy as np
array = np.random.random((2, 2))
print(array.shape)
print(array.size)
2.3 元素操作
2.3.1 矩阵加法
对应元素相加
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[1, 2], [3, 4]])
print(a+b)
2.3.2 矩阵减法
对应元素相减
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[1, 2], [3, 4]])
print(a-b)
2.3.3 矩阵乘法
矩阵乘法不同于以上加减法,矩阵乘法通过np.dot来计算
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[1, 2], [3, 4]])
print(np.dot(a,b))
2.3.4 哈达玛积
哈达玛积是对应位置元素相乘
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[1, 2], [3, 4]])
print(a*b)
2.3.4 指数运算
对矩阵中的每个元素做指数运算 调用exp方法
import numpy as np
a = np.array([[1, 2], [3, 4]])
print(np.exp(a))
2.4 广播机制
有时进行操作的矩阵可能维度不一致,比如a矩阵为3*1,b矩阵为1*2
此时Python会将b矩阵复制三次,变成一个3*2的矩阵再进行元素操作
import numpy as np
a = np.array([[1], [1], [1]])
b = np.array([[1, 2]])
print(a+b)
3、写在最后
Numpy操作在机器学习深度学习中很重要,一部分Tensor操作其实跟Numpy操作非常类似。机器所能识别的虽然是数字,但这些数字在机器的思想里可以代表我们现实中的一些物体。最后,有不懂的地方欢迎私信留言哦