高维数组的”矩阵相乘”

阿里云双11来了!从本博客参与阿里云,服务器最低只要86元/年!

需求:高维(至少3维以上)的两个数组,进行线性代数中的矩阵相乘!下面的规律numpy和cupy都适用。

两个数组尺寸要求:

  • 2维以上“的尺寸必须完全对应相等;
  • 2维“具有实际意义的单位,只要满足矩阵相乘的尺寸规律即可。

例子:

import numpy as np
# 前两个高维4和3必须对应完全相等!后面两个只需满足矩阵相乘要求即可。
a = np.zeros( (4,3,4,2) ) + 1  
b = np.zeros( (4,3,2,4) ) + 2
w = np.matmul(a,b)
print( w.shape )
# 结果:
(4, 3, 4, 4)

结果的说明:我们已经知道,高维数组的单位其实就是一个个二维矩阵;上面例子的”高维数组相乘“,其实就是”两个矩阵彼此之间二维矩阵单位的相乘“而已!高维仅代表这样的单位有很多,整体做了很多对应位置的单位相乘罢了(直接用高维数组相乘,比用循环对应位置一个一个循环乘要快太多!!)。

因此:再高纬度的矩阵,都能直接进行快速的矩阵相乘,这为”矢量化编程“创造了条件。

https://www.jianshu.com/p/2cdcb3e86a3d

Python量化投资网携手4326手游为资深游戏玩家推荐:《【晨曦列车攻略】全结局攻略(持续更新中…)

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论