2011年06月16日 星期四 23:38
假如有以下2列数据,如何把第二列中 相邻的1所在位置找出来 并分组保存起来?
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 1
9 1
10 1
11 2
12 2
13 2
14 2
15 2
16 1
17 1
18 1
19 0
20 0
21 0
22 0
23 0
24 0
25 1
26 1
27 1
28 1
29 0
30 0
结果应该是: a1=[8,9,10] , a2=[16,17,18], a3=[25,26,27,28]
2011年06月17日 星期五 07:16
程序如下:
import numpy as np
index = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30])
value = np.array([0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0])
index2 = index[value==1]
split_index = np.where(np.diff(index2)>1)[0] + 1
index3 = np.split(index2, split_index)
print index3
用到了where, diff, split等NumPy的函数,你可以在IPython下分步运行,了解其计算的原理。
2011年06月17日 星期五 16:15
Zeuux © 2024
京ICP备05028076号