【发布时间】:2016-07-16 17:18:34
【问题描述】:
在 python 中,我有一个大小为(n,n,n) 的三维数组T 和一个大小为(n,k) 的二维数组。
在线性代数中,由T 定义并应用于W 的多线性映射在代码中为:
X3 = np.zeros((k,k,k))
for i in xrange(k):
for j in xrange(k):
for t in xrange(k):
for l in xrange(n):
for m in xrange(n)
for h in xrange(n):
X3[i, j, t] += M3[l, m, h] * W[l, i] * W[m, j] * W[h, t]
见
https://en.wikipedia.org/wiki/Multilinear_map
供参考。
这很慢。我想知道 numpy 中是否存在任何替代或任何预构建功能可以加快操作速度。
【问题讨论】:
-
你的典型
n和k是什么? -
n 可以很大(最多 100000)k 最多 1000,或多或少..
-
那么,您将有一个形状为
(100000,100000,100000)的数组M3作为输入?是不是太大而无法放入 RAM 中? -
@UlderiqueDemoitre 如果以下任何答案解决了您的问题,请单击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
标签: python arrays performance numpy