自动分割时间Numpy向量的有效方法

时间:2017-06-07 21:38:46

标签: python numpy

我有一个时间向量,如下图所示: enter image description here

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

我想知道一种在numpy中分割矢量的有效方法,并提取显着下降幅度的5个信号块。

我可以通过将幅度2.302视为截止幅度来将它们分开,并在信号下降到该值时将其与初始指数分开,并在信号超过该值时将其与最终指数分开。

在numpy中执行此操作的任何有效方法?

1 个答案:

答案 0 :(得分: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代码?