我正在尝试在python中实现k均值聚类算法的核心处理版本。我从这个git项目K-Mean Parallel ... Dask ...
中学到了技巧我使用相同的git项目,但是试图加载二进制文件形式的数据。二进制文件包含每个具有1024个浮点特征的数据点。
我的问题是,如果数据非常大,即大于可用内存本身,该如何加载数据?我尝试使用numpy的fromFile函数,但是我的内核以某种方式死亡。我的一些问题是:
问:是否可以将数据加载到由其他来源创建的numpy中(文件不是由numpy创建的,而是由C脚本创建的)?
问:是否有dask的模块可以直接从二进制文件加载数据?我见过使用过的csv文件,但与二进制文件无关。
答案 0 :(得分:1)
我只涉猎Dask,但是通过延迟在下面的代码中调用np.fromfile会使您懒惰地使用它。就是说,我自己在做这个,所以目前这是部分答案。
第一个问题:目前,我使用类似的代码加载由Labview程序创建的.bin文件,没有问题:
import numpy as np
method = "b+r" # binary read method
chunkSize = 1e6 # chunk as needed for your purposes
fileSize = os.path.getsize(myfile)
data = []
with open(myfile,method) as file:
for chunk in range(0,fileSize,chunkSize):
data.append(np.fromfile(file,dtype=np.float32,chunk))
第二个问题:我无法在Dask中找到用于处理二进制文件的任何内容。我发现转换为Dask可以使用的东西是值得的。