-1
我有一个二进制值的文件。我在看的部分是4字节INT与在MW1, MVAR1, MW2, MVAR2,...
我该如何改进文件数据的批量计算
模式的值我与
temp = array.array("f")
temp.fromfile(file, length *2)
mw_mvar = temp.tolist()
我再计算这样的幅度读出值。
mag = [0] * length
for x in range(0,length * 2, 2):
a = mw_mvar[x]
b = mw_mvar[x + 1]
mag[(x/2)] = sqrt(a*a + b*b)
计算(不是读取)是我的脚本的总长度加倍。我知道(理论上)有一种方法可以更快地完成这个任务,因为我模仿一个最终会调用fortran的脚本(pyd可以调用Fortran中的函数dll),它能够对运行时间产生微不足道的影响。
这是我能想到的最好的。任何改进建议?
我也试过math.pow()
,**.5
,**2
没有区别。
您的代码段不完整,因为您忽略了某些术语的定义,例如'thermal_mva_results_base'。你对f文件的解释也很薄弱。请给出一个更完整的文件示例,文件通常长度的声明以及完整的代码片段。变量的类型和数据对您的问题很重要。 –
@RoryDaulton对不起,这是一个错字。我简化了帖子的名称,并没有改变那个。 – blindguy