【发布时间】:2021-07-06 09:40:15
【问题描述】:
假设我有 3 个矩阵 w2、w3 和 w4,形状为 (5,5) (5,5) 和 (5,1)
是否有任何有效的方法来创建形状为(55,1) 或(55,) 的这3 个矩阵的扁平数组(进行一些计算),然后将这个新数组拆分回3 个形状与原始矩阵相同的矩阵?
我已经这样做了:
theta=w2.flatten()
theta=np.append(theta,w3)
theta=np.append(theta,w4)
然后:
w2=theta[0:25].reshape(5,5)
w3=theta[25:50].reshape(5,5)
w3=theta[50:].reshape(5,1)
但这似乎很慢。有没有更有效的方法?
【问题讨论】:
-
不确定这应该做什么,但可以尝试的一件事是通过
np.concatenate或类似方法一次连接所有数组。 -
您能否提供更多有关您正在计算的内容的见解?因为加快第一个进程的唯一方法是预先分配
theta中的空间,然后将结果直接写入带有w3[:] = theta[0:25].reshape(5, 5)的原始数组中。但这两种操作都不会花费很多时间。
标签: python-3.x numpy flatten