python - 沿给定轴的 numpy kron
问题描述
是否有沿给定轴应用克罗内克积的功能?例如,给定 2D 数组a
和b
的形状a.shape == (n, k)
和b.shape == (n, l)
,计算c
形状c.shape == (n, k*l)
的等效结果为:
c = np.empty((a.shape[0], a.shape[1] * b.shape[1]))
for i in range(c.shape[0]):
c[i,:] = np.kron(a[i], b[i])
解决方案
没有内置的,但我们可以使用outer elementwise-multiplication
保持它们的第一个轴对齐然后重塑 -
c = (a[:,:,None]*b[:,None,:]).reshape(a.shape[0],-1)
或者,我们可以使用einsum
-
c = np.einsum('nk,nl->nkl',a,b).reshape(a.shape[0],-1)
推荐阅读
- c# - c# selenium 弹出窗口中的警报控件
- python - 快速查找字典和对系列熊猫字典地图系列
- c - realloc(): 无效的下一个大小已中止(核心转储)
- excel - 如何在受保护的工作表中过滤和排序excel表(listobject)
- angular - Ionic:添加 routerLink 时选项卡栏消失
- flutter - 如何在 Heroku 上部署 Flutter Web
- radio-button - ButtonGroup 中的代号一个单选按钮
- microsoft-graph-api - SharePoint 的图形 API:使用超链接/图片字段更新/创建 ListItems
- python - python中的未知语句
- javascript - chart.js 混合图表(条形图 + 线形图):让线条从 x = 0 开始