【问题标题】:Extracting and sorting data from a binary file从二进制文件中提取和排序数据
【发布时间】:2017-11-20 01:13:16
【问题描述】:

所以我刚刚开始了 Python 编程课程,我完成了一项名为“Wind 数据分析”的作业,我将在其中从 bin.file 中提取数据并将其分类为 x、y 和 z 值。到目前为止,我得到了:

filename="turb21351_L72u.bin"
with open(filename,'br') as f: 

buffer = f.read(100000)
print("Length of buffer is %d" % len(buffer))

for i in buffer:
    print(int(i))

这很好用(注意;我在这里写的脚本有一些缩进错误)并且给我的值在 1 到 300 之间。

问题在于对数据进行排序。作业的描述听起来像这样:

"数据文件由Nz X Ny X Nx个数字组成(浮点单精度)。数字的顺序对应索引 z、y 和 x 分别从 1 依次增加至 Nz、Ny 和 Nx。变化最快的索引是 z,其次是 y,变化最慢的索引是 x。那是, 序列中的第一个 Nz 数字对应于从 1 到 Nz、y = 1 和 x = 1 的索引 z。根据此排序规则,函数必须将数据转换为维度为 Nz X Ny X 的三维数组Nx。”

我的问题是:

如何从数学上理解分配描述以及如何根据排序规则对其进行排序?

【问题讨论】:

    标签: python sorting math binary sequences


    【解决方案1】:

    你可以试试下面的代码吗:

    filename="turb21351_L72u.bin"
    with open(filename,'br') as f:
        buffer = f.read(100000)
    print("Length of buffer is %d" % len(buffer))
    
    for i in buffer:
        print(int(i))
    

    在 python 中,with 关键字用于处理非托管资源(如文件流)。 with 语句的工作方式类似于块语句,需要缩进。

    来自Python Docs

    with 语句澄清了以前使用try...finally 块的代码,以确保执行清理代码。在本节中,我将讨论常用的语句。在下一节中,我将检查实现细节并展示如何编写用于此语句的对象。

    with 语句是一个控制流结构,其基本结构是:

    with expression [as variable]:
        with-block
    

    表达式被评估,它应该产生一个支持上下文管理协议的对象(即具有__enter__()__exit__() 方法)。

    【讨论】:

    • 我尝试了你的建议,但它只是给了我一长串数字。我有兴趣接收一组数字。
    猜你喜欢
    • 2016-01-10
    • 2014-02-15
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    • 2016-01-01
    • 2011-11-22
    相关资源
    最近更新 更多