我正在处理地质数据.数据是框的垂直(z)列的2D(xy)图,每个框具有与其相关联的多于1个数值参数.随着代码的发展,我需要自由添加/删除框参数(这意味着我现在已经不知道我实际需要多少).方框的数量因地图而异.因此得到的3D阵列在z方向上呈锯齿状.应用于数据的算法一次在一个垂直列的框上工作.
使用numpy/scipy工具表示这种数据结构的合理方法是什么?我想过一个带有自定义dtype的3D结构化数组.但由于数据固有的锯齿状性,它可能会有很多零.
如果您的数据在代码期间是可变的,numpy则不建议这样做。
一种可能的解决方案是创建一个字典,其键是参数。例如,在有 2 个盒子的情况下,其坐标[x1, y1]和[x2, y2]、高度h1和以及您可以定义的h2其他常规参数。
data = {
'boxes': [[x1, y1], [x2, y2]],
'height': [h1, h2],
'general_parameter': [par1, par2]
}
Run Code Online (Sandbox Code Playgroud)
这样您就可以在需要时添加参数和框:
data['new_parameter'] = [new_par1, new_par2]
Run Code Online (Sandbox Code Playgroud)
如果你想使用numpy,你可以list用数组替换 s numpy:
import numpy as np
data = {
'boxes': np.array([[x1, y1], [x2, y2]]),
'height': np.array([h1, h2]),
'general_parameter': np.array([par1, par2])
}
Run Code Online (Sandbox Code Playgroud)