因此,我刚刚开始使用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__()
方法)。