Numpy,masking和sklearn聚类

时间:2014-04-08 06:33:05

标签: python arrays numpy matrix

我遇到了将3D修改为2D的问题,以便将其提供给带宽函数以进行均值偏移计算。最初我查询数据库中的1D数组值和属于这些值的IDś数据 - 这将有助于我以后识别源。在计算之前,我再添加一个维度以确保计算正确,并且所有这些结果都保存在3D数组中。现在我需要向计算函数提供包含值和零的2D,但是我在构建2D压缩(没有描述ID的thrid值)数组时遇到了问题。有没有人知道如何使用numpy并没有一个包含ID的完全独立的列表?

源数组:

[(2.819999933242798, 0.0, 16383) 
 (3.75, 0.0, 16384) 
 (3.75, 0.0, 16385)]

屏蔽后的数组:

[(2.819999933242798, 0.0, --) 
 (3.75, 0.0, --) 
 (3.75, 0.0, --)]

需要的数组:

[(2.819999933242798, 0.0) 
 (3.75, 0.0) 
 (3.75, 0.0)]

干杯

1 个答案:

答案 0 :(得分:1)

您可以先转换为numpy数组:

h=[(2.819999933242798, 0.0, 16383), (3.75, 0.0, 16384) , (3.75, 0.0, 16385)]
a=np.array(h)

然后获取所需的列:

a[:,0:2]

给出:

array([[ 2.81999993,  0.        ],
       [ 3.75      ,  0.        ],
       [ 3.75      ,  0.        ]])

@ a[:,:-1],如@BrenBarn在评论

中所建议的那样