将二进制(32位有符号整数.dat)文件打开到numpy数组中

时间:2015-01-09 03:11:12

标签: python arrays numpy

我有一个32位有符号整数.dat文件,其中有两个数据交错的数组。我想将数据打开成两个独立的numpy数组。

我试图使用numpy' fromfile'。

打开它
import numpy as np

newarray = np.fromfile('file.dat',dtype=int)
print newarray

从我的文件中打印

[ 83886080 16777216 251658240 ..., 0 50331648 16777216]

这很奇怪,因为我知道两个数组应该像

一样开始
[  1   0   0  ...]
[  15  5   11 ...]

根据我对交错数据的理解,我期待上面的代码给我一个看起来像

的数组
[  1   15   0   5 ...]

有谁知道我哪里出错了?如果有帮助,我可以发布文件。

1 个答案:

答案 0 :(得分:1)

尝试:

data = np.fromfile('file.dat', dtype=np.int32)
arr1 = data[::2]
arr2 = data[1::2]

data = np.memmap('file.dat', dtype=np.int32, mode='r')
arr1 = data[::2]
arr2 = data[1::2]