我是Python新手,所以请你忍受我吧!在
此功能:
def kerf(X,m):
[n_samples, ]= X.shape
n_sa, n_fe = m.shape
ker = np.zeros((n_samples, n_sa))
for i, x_i in enumerate(X):
for j, m_j in enumerate(m):
ker[i, j] = (np.dot(x_i, m_j)) # problem is here!!
return ker
我这样称呼它:
^{pr2}$myarray基本上是相同的矩阵。为什么?在
当我将问题行替换为:
它反复打印
(2,)
。在ker[i, j]
取1个值;2个值是sequence
。在请给出数组在不同点的维数,例如
myarray
(我猜到了并尝试了(3,4)),以及问题点。print(...shape)
是numpy
中必不可少的调试工具。在您是否需要帮助来找出它是
(2,)
的原因?我建议你在一个交互式的shell中逐步完成这个循环,在过程中观察不同点的形状。在
^{pr2}$dot
的2个输入如下所示:标量和2元素数组-因此
dot
也是2元素数组。在您需要解释这两个数组的大小,以及
dot
的大小。实际上,我们可以得到结果-它必须是(1,)
或者一个标量-1的值放入一个插槽ker
。在您可能可以用一个
dot
产品(或者如果需要的话使用einsum
调用)来替换双重迭代。但是让我们先让这个迭代生效。在相关问题 更多 >
编程相关推荐