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[ x1x2 \right ] X=[x1x2] W = [ 1 3 5 2 4 6 ] W=\left[ 135246 \right ] W=[123456] 以及 Y = [ y 1 y 2 y 3 ] Y=\left[ y1y2y3 \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,也可以通过一次运算就计算出结果!非常方便。

posted @   aJream  阅读(113)  评论(0编辑  收藏  举报
编辑推荐:
· 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训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示