2017-06-07 35 views
0

我有一个时间矢量如下面的图像中: enter image description here有效的方式来分割时间numpy的矢量自动

numpy的矢量: https://drive.google.com/file/d/0B4Jac-wNMDxHS3BnUzBoUkdmOGs/view?usp=sharing

我想知道一种有效的方式来分割该载体在numpy,并提取5个信号幅度显着下降的信号。

我可以通过考虑幅度2.302作为截止幅度来区分它们,并在信号下降到该值时将它们与初始索引分开,当信号高于该值时将其最终索引分开。

任何有效的方法来做到这一点在numpy?

回答

0

所以我编程纯Python,并列出了解决方案:

vec = np.load('vector_numpy.npy') 
# plt.plot(vec) 
# plt.show() 
print vec.shape 

temporal_vec = [] 
flag = 0 
flag_start = 0 
flag_end = 0 

all_vectors = [] 
all_index = [] 

count = -1 
for element in vec: 
    count = count+1 
    #print element 
    if element < 2.302: 
     if flag_start ==0: 
      all_index.append(count) 
      flag_start=1 
     temporal_vec.append(element) 
     flag = 1 
    if flag == 1: 
     if element >= 2.302: 
      if flag_start==1: 
       all_index.append(count) 
       flag_start=0 
      all_vectors.append(temporal_vec) 
      temporal_vec = [] 
      flag = 0 

print(all_vectors) 

for element in all_vectors: 
    print(len(element)) 
    plt.plot(element) 
    plt.show() 

print(all_index) 

在numpy的或更好/更短的Python代码的任何华丽的方式?