Как добавить значения в массив через цикл for - PullRequest
0 голосов
/ 31 октября 2019

У меня есть три набора np.arrays. Два - это мой набор данных (U и t), а третий - номер каждой точки данных (iarray). Я пытаюсь создать три новых массива: один содержит значения (U) в течение определенного интервала. Вторая содержит значения (t), приписанные значениям (U). Третий содержит количество этих значений в исходном массиве (они должны быть одинаковыми как для U, так и для t).

Я получаю два массива разного размера для новых U и t, и мой массив целых чисел содержиттолько одно значение.

Все должны иметь одинаковый размер.

Я попытался установить серию циклов for, которая проверяет, чтобы значение U находилось в определенном интервале. Затем проверьте, будет ли значение в t близко к последней точке, добавленной в новый t-массив. Если все хорошо, следует добавить значения с теми же целыми числами в исходных массивах в те же позиции в новых массивах.

Массивы с данными и массивом чисел

t = a[:,0]
U = a[:,1]
iarray=np.array(range(len(t)))

Ядрокод

tpeak = np. array([])
Upeak = np. array([])
b=np.array([])

for i in range(len(t)):
    if (np.size(b)==0) and 0.9<U[i]and U[i]<4 :
        tpeak=np.append(tpeak,t[i])

for i in range(len(t)):
    if (np.size(b)==0) and 0.9<U[i]and U[i]<4 :
       Upeak=np.append(Upeak,U[i])

for i in range(len(t)):
    if (np.size(b)==0) and 0.9<U[i]and U[i]<4 :
       b=np.append(b,iarray[i])

for i in range(len(t)):
    if U[i]>1 and U[i]<4  and 0.8<tpeak[-1]-t[i] : 
        tpeak=np.append(tpeak,t[i])

for i in range(len(t)):
    if U[i]>1 and U[i]<4  and 0.8<tpeak[-1]-t[i] :
        Upeak=np.append(Upeak,U[i])


for i in range(len(t)):
    if U[i]>1 and U[i]<4  and 0.8<tpeak[-1]-t[i] : 
        b=np.append(b,iarray[i])

Как уже упоминалось, я ожидаю, что на выходе будут три массива (Upeak, tpeak и b) одинакового размера, но пик U на 1 меньше, чем tpeak, а ipeak содержит только одно значение.

...