[学习] 深度学习-Lesson 1--矩阵学习和Numpy复习

mac2025-01-07  15

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 实际用例

 

 

 

最新回复(0)