2017-06-07 72 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代碼的任何華麗的方式?