1. 数据维度
Scalars have zero dimensions.
Vectors's dimension is one
Matrices is a two-dimensional grid of values.
Tensor can refer to any n-dimensional collection.
[1 2 3] is 1*3 Matrix
[1 2 3]T is 3 by 1 Matrix..
2 Numpy 中的数据
2.1 数据类型和形状
NumPy 中处理数字的常见方式是通过 ndarray 对象。它们与 Python 列表相似,但是可以有任意数量的维度。而且,ndarray 支持快速的数学运算,这正是我们想要的。
由于它可以存储任意数量的维度,你可以使用 ndarray 来表示我们之前提到的任意数据类型:标量、向量、矩阵或张量。
2.2 标量
数组中的每一项必须具有相同的类型。
创建一个包含标量的numpy数组,方法是array 函数。5
例:
s = np.array(5)
s.shape 可以查看数组的形状。
2.3 向量
创建向量的函数 array
例:
v = np.array([1, 2, 3])
访问元素
x = v[1]
方位第二个元素及其后面的项
v[1:]
2.3 矩阵
创建例如
m = np.array([[1,2,3], [4,5,6], [7,8,9]])
2.4 张量
例如创建一个3×3×2×1的张量
t = np.array([[[[1],[2]],[[3],[4]],[[5],[6]]],[[[7],[8]],\ [[9],[10]],[[11],[12]]],[[[13],[14]],[[15],[16]
t.shape 返回 (3,3,2,1)
2.5 更改形状
例如
x = v.reshape(1,4)
3. 元素级矩阵运算
ELEMENT-WISE Operations
3.1 Python中的方式
values = [1,2,3,4,5] for i in range(len(values)): values[i] += 5
3.2 Numpy中的方式
values = [1,2,3,4,5] values = np.array(values) + 5
3.3 元素级矩阵运算
4 矩阵乘法 Matrix Product
dot product
关于矩阵乘法的重要提醒
左侧矩阵的列数必须等于右侧矩阵的行数。答案矩阵始终与左侧矩阵有相同的行数,与右侧矩阵有相同的列数。顺序很重要:乘法 A•B 不等于乘法 B•A 。左侧矩阵中的数据应排列为行,而右侧矩阵中的数据应排列为列。记住这四点,你在构建神经网络时,就能搞清楚如何正确排列矩阵乘法了。
5 Numpy 矩阵乘法
5.1 元素级乘法
multipy 或 *
5.2 矩阵乘积
matmul函数
5.3 Numpy 的dot 函数
6. 矩阵转置 Matrix Transpose
7. Numpy中的转置
T属性和transpose()函数,都可以转置。
NumPy 在进行转置时不会实际移动内存中的任何数据 - 只是改变对原始矩阵的索引方式 - 所以是非常高效的。
7.1 实际用例