0

我有一些想要连接的大型数据文件(32 x 非常大)。但是,数据是按错误的顺序收集的,所以我还需要对行重新排序。

到目前为止,我正在做的是:

# Assume FILE_1 and FILE_2 are paths to the appropriate files.
# FILE_1 is a matrix of size 32 x SIZE_1
# FILE_2 is a matrix of size 32 x SIZE_2
data_1 = np.memmap(FILE_1, mode='r', dtype='<i2', order='F', shape=(32, SIZE_1))
data_2 = np.memmap(FILE_2, mode='r', dtype='<i2', order='F', shape=(32, SIZE_2))

data_out = np.memmap('output', mode='w+', dtype='<i2', order='F', shape=(32, SIZE_1 + SIZE_2))

channel_mapping = [15, 14, 13, 12, 11, 10, 9, 8, 0, 1, 2, 3, 4, 5, 6, 7,
                   24, 25, 26, 27, 28, 29, 30, 31, 23, 22, 21, 20, 19, 18, 17, 16]

data_out[:SIZE_1, :] = data_1[:, channel_mapping]
data_out[SIZE_1:SIZE_2, :] = data_2[:, channel_mapping]

我实际上是在一个包含 2 个以上文件的 for 循环中执行此操作的,但是您明白了。

这是最有效的方法吗?恐怕应用程序channel_mapping会将数据写入内存并减慢整个过程。事实上,这比简单地连接文件要慢得多。

4

0 回答 0