导入大文件时特别慢该怎么解决
mathematica吧
全部回复
仅看楼主
level 1
xsh251924 楼主
各位大佬们,mathematica在导入大的文件时,用Import导入的很慢,该怎么解决啊,这是我的源程序
fdomdata = {
#[[1]], #
[[2]],
#[[3]] + I #
[[4]]} & /@
Import["slvdata_fdomain.dat", "Table"][[2 ;;]];
fdomdata2 = {{i2x[
#[[1]]], i2y[#
[[1]]],
#[[2]]}, #
[[3]]} & /@ fdomdata;
vfexp[x_, y_, f_] =
Interpolation[fdomdata2, InterpolationOrder -> 1][x, y, f];
2021年07月25日 10点07分 1
吧务
level 12
对于纯文本格式的大文件,用ReadLine和ReadList会比Import快很多,可以参考吧主的这篇帖子:https://tieba.baidu.com/p/5966156986
简单测了下,ReadList的速度应该在Import的两倍左右
In[22]:= Export["test.dat", RandomReal[1, {10^4, 10}], "Table"];
dat1 = Import["test.dat", "Table"]; // AbsoluteTiming
dat2 = ReadList["test.dat", Number,
RecordLists -> True]; // AbsoluteTiming
dat2 == dat1
Out[23]= {0.168938, Null}
Out[24]= {0.0748241, Null}
Out[25]= True
当然更快的方法还是改用二进制,BinaryReadList之类的,不过这个得从数据源头就修改格式,不知道对你适用不适用
2021年07月25日 14点07分 2
感谢大佬的回答,我试一下[大拇指]
2021年07月25日 15点07分
1