0
我想从磁盘读取非常大的二进制文件(GB +),并为进一步处理做一次重塑。数据结构如下:有F帧,每帧由长度为N的B块组成,而N为数字。我用np.fromfile读取数据并获得一维np.array。我想要以他们的形状(F * N,B)重塑数据,以便我可以轻松地在块上操作。 我有一个办法,我想要做什么 - 但它使用一个for循环,并建立一个新的数组(所以不是很有效):Numpy:3D到2D maxtrix沿着一个轴平展顺序重塑
import numpy as np
F,B,N= 2,2,2
Data3D = np.arange(F*B*N).reshape(F,B,N)
Data2D = np.zeros(F*B*N).reshape(F*N,B)
for i in np.arange(B):
Data2D[:,i] = Data3D[:,i,:].ravel()
我不实现扁平顺序(np.ravel( )保持秩序)与直接重塑转型,但我想有一个有效的/基本的numpy方法。
正是我在找什么!谢谢! – tomatopete