Python 处理xyz数据的最佳方法

Python 处理xyz数据的最佳方法,python,numpy,3d,pandas,tuples,Python,Numpy,3d,Pandas,Tuples,我是python新手,正在尝试找出解决数据分析问题的最佳方法。如果这个问题看起来很基本,我道歉。我基本上需要帮助来确定我是想使用元组、dict还是pandas数据帧来存储数据。以下是我的设想: 我的数据:我有一个3D空间数据集,数据位于不均匀的XYZ位置。数据点的精确位置至关重要,因此我无法对均匀网格进行重采样,这将更容易处理。每个XYZ数据点都有一组相关的细节,包括字符、整数、浮点和布尔类。我基本上有一个相当混乱的数据“云” 我的目标:我希望能够检查数据集中“X”类型的每个点,并查看给定半径内

我是python新手,正在尝试找出解决数据分析问题的最佳方法。如果这个问题看起来很基本,我道歉。我基本上需要帮助来确定我是想使用元组、dict还是pandas数据帧来存储数据。以下是我的设想:

我的数据:我有一个3D空间数据集,数据位于不均匀的XYZ位置。数据点的精确位置至关重要,因此我无法对均匀网格进行重采样,这将更容易处理。每个XYZ数据点都有一组相关的细节,包括字符、整数、浮点和布尔类。我基本上有一个相当混乱的数据“云”

我的目标:我希望能够检查数据集中“X”类型的每个点,并查看给定半径内所有其他点的属性(它们是什么类型,以及各种其他特征)

我的问题:存储和查询此类数据的最有效方式是什么?直观地说,一个包含x、y、z列的数据框。。。这是有道理的,但考虑到我将使用大型数据集,我担心这是否是最有效的方法。创建dict对象是否明智,其中定义是XYZ元组,存储的值是包含点特征的进一步dict对象?有没有一种明显的方法让我错过了

非常感谢任何帮助/建议


提前感谢。

因为这个用例的瓶颈似乎是数据的空间查询,我会选择这样一种方法:将坐标存储在高度优化的数据结构中,用于空间查询,然后使用字典,您可以根据需要检索点的其他特征。用于计算几何的高性能专用库ie、boost graph和CGAL遵循类似的原理(例如,请参阅boost中的属性映射)

关于适当的数据结构,SciPy可能有适合您的东西
KDTree将是最近邻查询的一个选项。Pandas可以存储数据是的,但它没有专门的空间索引支持。

为什么您认为使用Pandas会因为数据集的大小而效率较低?在我看来,真正的瓶颈是计算所有点之间的距离,以便找到彼此半径内的所有点。使用pandas计算其他特征和按类别过滤应该很快,数据大小是多少?性能方面的pandas应该很好。引用熊猫官方网站:熊猫是一个开放源码、BSD许可的图书馆,为蟒蛇提供高性能、易于使用的数据结构和数据分析工具,供您参考。数据将大于500mb。目前还不确定,因为我还没有收集!numpy重新排列对于这种规模的数据可能很有用。请参阅