假设我有四个(N,)
向量A
、B
、C
和D
:
import numpy as np
N = 100
A = 1*np.ones(N) # => array([1,1,1,...])
B = 2*np.ones(N) # => array([2,2,2,...])
C = 3*np.ones(N) # => array([3,3,3,...])
D = 4*np.ones(N) # => array([4,4,4,...])
在我的应用程序中,每个元素都是矩阵的一个元素,并且矩阵随时间变化(尽管在本例中每个元素在时间上都是恒定的).我想要一个形状为(N,2,2)
的矩阵,这样我就有一个2x2的矩阵,对于每个时间步,比如[[a,b],[c,d]]
,沿着0轴扩展.有没有比我下面的更好的方式把这些堆叠成这样的形状?
我的解决方案是:
A_ = np.reshape(A, (N,1,1))
B_ = np.reshape(B, (N,1,1))
C_ = np.reshape(C, (N,1,1))
D_ = np.reshape(D, (N,1,1))
AB = np.concatenate((A_, B_),axis=2)
CD = np.concatenate((C_, D_),axis=2)
ABCD = np.concatenate((AB,CD),axis=1)
这提供了:
>>> ABCD
array([[[1., 2.],
[3., 4.]],
[[1., 2.],
[3., 4.]],
[[1., 2.],
[3., 4.]],
...
...
[[1., 2.],
[3., 4.]],
[[1., 2.],
[3., 4.]]])
如你所愿.只是很难理解它在做什么,所以我想知道是否有更好的方法.