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

时间:2016-02-23 15:23:51

标签: python numpy

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

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

1 个答案:

答案 0 :(得分:4)

如果您的代码中的数据是可变的,则不建议使用numpy

一种可能的解决方案是创建一个字典,其键是参数。例如,在具有坐标[x1, y1][x2, y2]的2个框的情况下,您可以定义高度h1h2以及其他常规参数。 / p>

data = {
    'boxes': [[x1, y1], [x2, y2]],
    'height': [h1, h2],
    'general_parameter': [par1, par2]
}

通过这种方式,您可以在需要时添加参数和框:

data['new_parameter'] = [new_par1, new_par2]

如果您想使用numpy,可以将list替换为numpy数组:

import numpy as np

data = {
    'boxes': np.array([[x1, y1], [x2, y2]]),
    'height': np.array([h1, h2]),
    'general_parameter': np.array([par1, par2])
}