Python,Numpy – 尝试根据条件拆分数组
发布时间:2020-12-20 11:23:51 所属栏目:Python 来源:网络整理
导读:我试图在阵列内找到簇(即阵列中的组,其中[n 1]和[n]之间的差小于某个值).我有一个numpy数组,是一系列时间戳.我可以使用numpy.diff()找到时间戳之间的区别,但是我很难在没有循环遍历数组的情况下尝试确定簇.举例说明: t = t = np.array([ 147,5729,5794,5806
我试图在阵列内找到簇(即阵列中的组,其中[n 1]和[n]之间的差小于某个值).我有一个numpy数组,是一系列时间戳.我可以使用numpy.diff()找到时间戳之间的区别,但是我很难在没有循环遍历数组的情况下尝试确定簇.举例说明:
t = t = np.array([ 147,5729,5794,5806,6798,8756,8772,8776,9976]) dt = np.diff(t) dt = array([5582,65,12,992,1958,16,4,1200]) 如果我的集群条件是dt< 100 t [1],t [2]和t [3]将是一个簇,t [5],t [6]和t [7]将是另一个簇.我尝试过使用numpy.where(),但是我没有成功将条件调整为正确分离出群集,即 cluster1 = np.array([5729,5806]) cluster2 = np.array([8756,8776]) 或类似的东西. 任何帮助表示赞赏. 解决方法import numpy as np t = np.array([ 147,9976]) dt = np.diff(t) pos = np.where(dt > 100)[0] + 1 print np.split(t,pos) 输出是: [array([147]),array([5729,5806]),array([6798]),array([8756,8776]),array([9976])] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |