1 回答

TA贡献1875条经验 获得超3个赞
我在你添加来源之前写了我的答案,因此它纯粹是基于你用文字写出来的第一部分。因此,就输入大小的变化而言,它不是很安全。如果您在书中进一步阅读 Anders Nielsen 实际上提供了他自己的实现。
我的主要答案不是单行答案,因为这会混淆它的作用,我强烈建议您写出这样的复杂流程,以便您更好地了解实际发生的情况。在我的代码中,我创建了一个 firstMatrix,其中包含矩阵中的 c 元素,以及一个 secondMatrix,其中包含 d 元素。我对每批 10 个都这样做,但不知道之后你想用矩阵做什么,所以我只为每批制作它们。如果你想对它们进行分组或什么的,请说出来,我会尝试实现它。
for batch in np.array_split(a,10):
firstMatrix = np.zeros(shape=(784,10))
secondMatrix = np.zeros(shape=(10,10))
for i in range(len(batch)):
firstMatrix[:,i] = batch[i][0]
secondMatrix[:,i] = batch[i][1]
如果你真的想要一个单行,这里有一个由 firstMatrices 组成的数组和一个为 secondMatrices 的数组:
firstMatrices = [np.array([batch[i][0] for i in range(len(batch))]).T for batch in np.array_split(a,10)]
secondMatrices = [np.array([batch[i][1] for i in range(len(batch))]).T for batch in np.array_split(a,10)]
添加回答
举报