5-多维数组的乘积
1. 多维数组
多维数组就是“数字的集合”,数字排成一列的集合、排成 长方形的集合、排成三维状或者(更加一般化的)N维状的集合都称为多维数组。下面我们就用NumPy来生成多维数组,先从前面介绍过的一维数组开始。
先熟悉几个函数:
-
np.ndim()
: 获取数组维数,返回一个 int 数据 -
shape()
: 获取数组形状,返回的是一个元组(tuple)
>>> import numpy as np
>>> A = np.array([1, 2, 3, 4])
>>> print(A) [1 2 3 4]
>>> np.ndim(A)
1
>>> A.shape
(4,)
>>> A.shape[0]
4
>>> B = np.array([[1,2], [3,4], [5,6]])
>>> print(B)
[[1 2]
[3 4]
[5 6]]
>>> np.ndim(B)
2
>>> B.shape
(3, 2) # 3行2列
二维数组也称为矩阵(matrix)
2. 矩阵乘积
矩阵乘积是线性代数中一个重要知识点,是通过左边矩阵的行(横向)和右边矩阵的列(纵向)以对应元素的方式相乘后再求和而得到的。并且,运算的结果保存为新的多维数组的元素。在python中用 np.dot(A,B)
实现。
>>> A = np.array([[1,2], [3,4]])
>>> A.shape
(2, 2)
>>> B = np.array([[5,6], [7,8]])
>>> B.shape
(2, 2)
>>> np.dot(A, B)
array([[19, 22],
[43, 50]])
注意:
np.dot(A, B)
和np.dot(B, A)
的值可能不一样- 矩阵乘法不是
A * B
- 前一个矩阵的列数 要与 后一个矩阵的行数 保持一致
3. 神经网络内积
下面我们通过矩阵的乘积进行神经网络的运算,这个神经网络省略了偏置和激活函数,只有权重。
这个神经网络可以看成 3 个矩阵
X
=
[
x
1
x
2
]
X=\left[ \right ]
X=[x1x2] 和
W
=
[
1
3
5
2
4
6
]
W=\left[ \right ]
W=[123456] 以及
Y
=
[
y
1
y
2
y
3
]
Y=\left[ \right ]
Y=[y1y2y3] 。
下面用python求 矩阵 Y
>>> X = np.array([1, 2])
>>> W = np.array([[1, 3, 5], [2, 4, 6]])
>>> Y = np.dot(X, W)
>>> print(Y)
[ 5 11 17]
如上所示,使用np.dot()
(多维数组的点积),可以一次性计算出Y的结果。 这意味着,即便Y 的元素个数为100或1000,也可以通过一次运算就计算出结果!非常方便。
本文来自博客园,作者:aJream,转载请记得标明出处:https://www.cnblogs.com/ajream/p/15383612.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人