numpy-einsum

    0热度

    1回答

    当有一些重复的索引被加在一起而另一些不是时,做阵列操作的最好方法是什么?看起来好像我可能不得不使用einsum来进行这些操作,但如果有一个tensordot备选方案,并且这个备选方案的维度对齐但不相加,则会更好。 有没有人知道一个快速的数值例程(在lapack中可能?),其行为像tensordot,除了有些轴可以对齐而不被求和? == 下面是一个示例代码,用于显示所需的数组操作类型。我需要的操作由

    3热度

    1回答

    我有以下问题。出于性能的原因,我使用numpy.tensordot,因此我的值存储在张量和向量中。 我的计算的一个是这样的: <w_j>是w_j和<sigma_i>的sigma_i预期值的预期值。 (也许我现在应该叫做西格玛,因为它与标准偏差无关)现在为了进一步计算,我还需要方差。到Get方差我需要计算: 现在,当我实现了第一个公式为蟒蛇与numpy.tensordot我真的很高兴,它的工作,因为

    0热度

    1回答

    我有一个形状(3,4,5)的张量3和另一个形状为(3,4,7,5)的张量4。 在numpy的, result = np.einsum("ijk, ijmk->ijm", tensor3, tensor4) print result.shape (3, 4, 7) 但在theano,如何做到这一点。

    1热度

    1回答

    我有两个n -by- k -by- 3阵列a和b,例如, import numpy as np a = np.array([ [ [1, 2, 3], [3, 4, 5] ], [ [4, 2, 4], [1, 4, 5] ] ]) b = np.array([ [ [3,

    2热度

    1回答

    我想向量化的N x N阵列以下三重积操作如下称为p: for j in range(len(p)): for k in range(len(p)): for l in range(len(p)): h[j, k, l] = p[j, k] * p[k, l] * p[l, j] - p[j, l] * p[l, k] * p[k, j] 我想numpy.ei

    1热度

    1回答

    我有张量的列表L(ndarray对象),每个都有几个索引。我需要根据连接图来收缩这些指数。 的连接进行编码元组的列表形式((m,i),(n,j))表示“与张力L[n]的Ĵ个指数收缩张L[m]的我个指标。 哪有我处理非平凡的连通图?第一个问题是,只要我收缩一对索引,结果就是一个新的张量,它不属于列表L。但即使我解决了这个问题(例如通过赋予一个唯一的标识符到所有张量的所有指数),就可以选择任何顺序来执

    2热度

    1回答

    有人可以解释广播(省略号)在numpy.einsum()函数中的工作原理吗? 一些示例显示如何以及何时可以使用将不胜感激。 我检查了下面的官方文档页面,但只有2个例子,我似乎无法理解如何解释它并使用它。 http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.einsum.html

    2热度

    1回答

    的公式为 $C'_{ijkl} = Q_{im} Q_{jn} C_{mnop} (Q^{-1})_{ok} (Q^{-1})_{pl}$ 我能够使用 np.einsum('im,jn,mnop,ok,pl', Q, Q, C, Q_inv, Q_inv) 做的工作,也期望 np.tensordot(np.tensordot(np.tensordot(Q, np.tensordot(Q,

    4热度

    2回答

    希望尽快完成此计算。我有X作为n x m numpy数组。我想定义y以如下所示: Y_11 = 1/(exp(X_11-X_11) + exp(X_11-X_12) + ... exp(X_11 - X_1N)). 或Y_00 1/np.sum(np.exp(X[0,0]-X[0,:])) 因此,基本上,Y是也n×m个,其中I,J的元素是1/sum_j” exp(X_ij - X_ij') 任何提

    1热度

    2回答

    我试图尽可能快地计算多个3x1向量对的交叉积。这 n = 10000 a = np.random.rand(n, 3) b = np.random.rand(n, 3) numpy.cross(a, b) 给出了正确的答案,但this answer to a similar question动机,我认为einsum会得到我的地方。我发现,无论 eijk = np.zeros((3, 3,