Abh*_*tia 2 python arrays numpy vectorization
我想将X,Y,Z numpy数组转换为(X * Z)* Y numpy数组。
代码(慢):
def rearrange(data):
samples,channels,t_insts=data.shape
append_data=np.empty([0,channels])
for sample in range(0,samples):
for t_inst in range(0,t_insts):
channel_data=data[sample,:,t_inst]
append_data=np.vstack((append_data,channel_data))
return append_data.shape
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种更好的矢量化方法
您可以np.transpose用来交换rows,columns然后重塑-
data.transpose(0,2,1).reshape(-1,data.shape[1])
Run Code Online (Sandbox Code Playgroud)
或用于np.swapaxes进行行和列的交换,然后重塑-
data.swapaxes(1,2).reshape(-1,data.shape[1])
Run Code Online (Sandbox Code Playgroud)