【发布时间】:2014-12-23 03:46:01
【问题描述】:
假设我有一个(c x d) 矩阵列表。比如说我有a。每个矩阵都有a 系数。
在 NumPy 中是否有一种快速的方法可以一次将每个矩阵乘以它的系数,同时仍然保持张量数据结构,或者我是否需要在 for 循环中手动完成,即X = np.array([np.multiply(coefs[i], X[i]) for i in range(len(coefs))])
即X.shape = (3, 4, 5), coefs.shape = (3).
【问题讨论】:
-
你能通过写一个你想要的数学公式来澄清吗?
-
您的示例
X.shape, coeffs.shape是 3-D 和 1-D - 这与标题冲突...... 2-D 乘以 3-D。 -
替代列表理解:
[np.multiply(a, b) for a, b in zip(X, coeffs)] -
@Andrew,想知道你是否最终考虑了我的建议,
np.einsum,然后? -
嘿!我感谢您写下答案,但不幸的是,正如您所提到的,对于大型数据集,速度并没有很大的提高,而且对于像我正在做的那样一次性使用,多功能性并不是主要优势。不过谢谢!