建议用numpy表示我的数据的方法

Min*_*tex 6 python numpy

我正在处理地质数据.数据是框的垂直(z)列的2D(xy)图,每个框具有与其相关联的多于1个数值参数.随着代码的发展,我需要自由添加/删除框参数(这意味着我现在已经不知道我实际需要多少).方框的数量因地图而异.因此得到的3D阵列在z方向上呈锯齿状.应用于数据的算法一次在一个垂直列的框上工作.

使用numpy/scipy工具表示这种数据结构的合理方法是什么?我想过一个带有自定义dtype的3D结构化数组.但由于数据固有的锯齿状性,它可能会有很多零.

Fra*_*aro 4

如果您的数据在代码期间是可变的,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)