python - 在numpy上将矩阵乘以数组元素?
问题描述
我想要的真的很简单,但我不知道如何在 numpy 上做到这一点。
我有以下矩阵:
M = [[1, 1, 1],
[1, 1, 1],
[1, 1, 1]]
而这个数组:
A = [1, 2, 3]
我想将矩阵与数组上的每个元素相乘以产生:
[[[1, 1, 1],
[1, 1, 1],
[1, 1, 1]],
[[2, 2, 2],
[2, 2, 2],
[2, 2, 2]],
[[3, 3, 3],
[3, 3, 3],
[3, 3, 3]]]
没有任何 for 循环,我只想要一个 numpy 函数。
解决方案
使用einsum
np.einsum('ij,k->kji', M, A)
array([[[1, 1, 1],
[1, 1, 1],
[1, 1, 1]],
[[2, 2, 2],
[2, 2, 2],
[2, 2, 2]],
[[3, 3, 3],
[3, 3, 3],
[3, 3, 3]]])
推荐阅读
- amazon-web-services - 报告来自自动触发的 lambda 函数的匹配时间戳
- c++ - 我可以使用互斥锁在 Android 中读取和写入同一个文件,而不会出现未定义的行为吗?
- compiler-construction - 如何使用可选前缀 LL(2) 制作语法?
- google-apps-script - 如何将我的输出格式化为彼此重叠而不是并排?
- python - 在 Google Cloud 实例上设置代理
- r - 用于从 R 中具有特定条件的数据帧中消除行的函数
- kubernetes - 防止 GCP 维护重启 GKE 集群
- azure-ad-b2c - 如何在迁移前检查用户是否存在于 AD 中
- reactjs - 如何使用打字稿禁止孩子使用 React 组件?
- firebase - 如何根据项目相似度查询 Firestore