Python 如何在numpy数组中查找值簇

Python 如何在numpy数组中查找值簇,python,arrays,numpy,cluster-analysis,geospatial,Python,Arrays,Numpy,Cluster Analysis,Geospatial,我有一个气压数据数组(M x N)(网格模型数据)。还有两个阵列(也是M x N)用于纬度和经度。为了建立等压线(等压表面)的几何模型,我需要找到给定步骤(1Pa,0.5Pa)的压力值簇。一般来说,我是这样想的: 建立一个对象列表:[{lat,lon,pressure},…]以将lat和lon数据链接到压力 按压力对物体进行分类 对于列表中的每个对象:比较其压力值并移动到专用列表 创建GeoJSON特性 但第3步我还不清楚:如何以智能的方式找到集群?我应该寻找哪种算法?我可以用scipy.clu

我有一个气压数据数组(M x N)(网格模型数据)。还有两个阵列(也是M x N)用于纬度和经度。为了建立等压线(等压表面)的几何模型,我需要找到给定步骤(1Pa,0.5Pa)的压力值簇。一般来说,我是这样想的:

  • 建立一个对象列表:[{lat,lon,pressure},…]以将lat和lon数据链接到压力
  • 按压力对物体进行分类
  • 对于列表中的每个对象:比较其压力值并移动到专用列表
  • 创建GeoJSON特性

  • 但第3步我还不清楚:如何以智能的方式找到集群?我应该寻找哪种算法?我可以用scipy.cluster包实现吗?

    我认为您根本不需要集群

    显然,等压线的范围是给定的。因此,在它们上拆分数据集;您不需要为此排序—只需找到最小值和最大值即可获得所有存储桶,然后分别根据每个存储桶选择数据。这很好地将问题分解为更小的部分

    我想你的问题很大程度上是视觉化的。你想显示类似压力的区域而不是点,对吗

    <> P>而不是查看诸如最小二乘优化(k-均值)之类的统计方法,它们要求您预先定义参数K,考虑看可视化技术,例如(与凸壳密切相关,但它们也允许非凸形状)。如果你计算每个压力域的alpha形状,你应该能很好地看到这些区域


    如果您坚持使用集群,请查看。主要原因是它允许非凸形状的簇,并且可以使用纬度+经度(k-means不允许)。但即使是HAC也可能给您带来好的结果,因为您可以根据数据分辨率定义切割阈值(例如,如果相距小于1km,则将同一压力桶中的任何点合并)。

    等压线网格的范围是否固定?然后它就像
    isobar\u bucket\u no=trunc(压力/0.5)
    一样简单,其中
    0.5
    是您的网格步骤。你甚至不需要分类。如果你需要动态计算范围,找到最小和最大压力,然后找到一个合适的网格步长,这样等压线的数量是合理的。谢谢,我知道了。你是对的:更多的是关于视觉化,这是我的错。但看起来凹面船体可以解决我的问题,所以我将继续这个方向。