所以我刚刚在python中开始编程课程,我有一个名为“风数据分析”的作业,我将从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“。
我的问题是:
如何以数学方式理解分配描述以及如何根据排序规则对其进行排序?
答案 0 :(得分: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__()
方法)。