因此,我刚刚开始使用python进行编程课程,我有名为“ Wind data analysis”的作业,在该作业中,我将从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个数字对应于索引z,从1到Nz,y = 1,x =1。基于此排序规则,该函数必须将数据转换为维数为Nz X Ny X的三维数组Nx。”

我的问题是:

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

最佳答案

您可以尝试以下代码:

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语句的作用类似于block语句,需要缩进。

Python Docs


  with语句阐明了以前使用try...finally块来确保执行清除代码的代码。在本节中,我将讨论通常使用的语句。在下一节中,我将检查实现细节,并说明如何编写用于此语句的对象。
  
  with语句是一个控制流结构,其基本结构为:

with expression [as variable]:
    with-block

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

10-06 01:46