陣列外積我有形狀(2, s, t, ...)
的d
numpy的陣列,以及我想乘每個區域具有彼此,使得輸出與d
2
S形(2, ..., 2, s, t, ...)
。例如,對於d==3
:與多個維度
import numpy
d = 3
a = numpy.random.rand(d, 2, 7, 8)
out = numpy.empty((2, 2, 2, 7, 8))
for i in range(2):
for j in range(2):
for k in range(2):
out[i, j, k] = a[0][i]*a[1][j]*a[2][k]
如果s, t, ...
不存在(其也是用例),這是經典的外積。
我想到了meshgrid
,但無法完成它的工作。
任何提示?
您可以取代''用... xy''使它更普遍的工作。除此之外:任何想法如何將這個表達式概括爲任意'd'? –
如果'a = numpy.random.rand(d)',此解決方案不起作用。我猜這個案子可以用'if'截獲。 –