Python - 如何读取此bin文件?

时间:2018-02-15 14:53:54

标签: python numpy bin

我使用Matlab保存了一个.bin文件,其中包含以下双值:[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0]

我想读取这个bin文件并将所有偶数值存储在列表中,将所有奇数值存储在另一个列表中。举个例子,我会得到这样的结果:

even_values = [2.0, 4.0, 6.0, 8.0, 10.0]
odd_values  = [1.0, 3.0, 5.0, 7.0, 9.0]

我可以阅读整个bin文件一次。这是我的代码:

import numpy as np
data = open('bin_file', 'rb')
all_values = np.fromfile(data,dtype=np.float32)

我的问题是:

有两种方法可以读取这个bin文件吗?

第一次,我想只读取偶数值,第二次我想读取奇数值。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

首先,您是否应该使用float来比较偶数和奇数值?无论如何,只需打开文件,然后创建新的numpy对象。

import numpy as np
with open('bin_file', 'rb') as data:
    all_values = np.fromfile(data, dtype=np.float32)
even_values = all_values[all_values % 2 == 0]
odd_values  = all_values[all_values % 2 == 1]
del all_values  # if you're really worried about memory