如何将一维numpy数组拆分为块,每个块的长度取决于条件

AngelosSlt

我是python和程序设计的新手,所以请赐教。

我有两个用于数据,时间的一维数组。对于时间上的每个元素,对应于数据中的一个元素。时间中的元素对应于整天的测量。

我想将数据数组分为288个块,每个块对应于时间数组的5分钟块,然后取每个数据块的平均值。

时间数组包含以秒为单位的元素,从过去的特定点算起。N + 1和N元素的差等于两个数据样本之间的时间差。

我的目标是每300秒分割一次时间数组,然后在数据数组中找到相应的元素。两个数据元素之间的采样率并不总是相同的,有时是每11.3秒,有时是22.6,因此不可能使用np.split立即拆分数组。

这是我的代码:

matrix = np.zeros((288,1), dtype=float)
mean_timestamps = np.zeros((288,1), dtype=float)
w=0
for i in range(288):
    meanchunk = np.empty((20,1))
    meanchunk[:] = np.nan
    a = w 
    while time[w] - time[a] < 300:     #time difference in seconds
        if w == 4175:
            break
        meanchunk[w-a] = data[w]
        if np.logical_not(np.isnan(data[w])):
            mean_timestamps[i] = time[w]
        else:
            mean_timestamps[i] = np.nan

        matrix[i] = np.nanmean(meanchunk)

    if time[w+1] - time[a] > 300: 
        w = w+1
        break
    else:
        w = w+1
mean_timestamps = mean_timestamps[mean_timestamps !=0]
matrix = matrix[matrix !=0]

问题在于结果数组“ mean_timestamps”和“ matrix”的长度为273而不是288。

mean_timestamps长度

编辑:以下是时间数组的一些元素。

1.386280815216000080e+09
1.386280837911999941e+09
1.386280860608999968e+09
1.386280883305999994e+09
1.386280906003000021e+09
1.386280928697999954e+09
1.386280951394999981e+09
1.386280974092000008e+09
1.386280985440000057e+09
1.386280996789000034e+09
1.386281019484999895e+09
1.386281042180999994e+09
1.386281064878000021e+09
1.386281087575000048e+09
1.386281110270999908e+09
1.386281121619999886e+09
1.386281132967999935e+09
1.386281155664000034e+09
1.386281178361000061e+09
1.386281201056999922e+09
1.386281223753999949e+09
1.386281246450999975e+09
1.386281269147000074e+09
1.386281280494999886e+09
1.386281291842999935e+09
1.386281314539999962e+09
1.386281337236999989e+09
1.386281359933000088e+09
1.386281382628999949e+09
1.386281405325999975e+09
1.386281428023000002e+09
1.386281450720000029e+09
1.386281473414999962e+09
1.386281496111999989e+09
1.386281518809000015e+09
1.386281541506000042e+09
1.386281564201999903e+09
1.386281575551000118e+09
1.386281586898000002e+09
1.386281609595000029e+09
1.386281632292000055e+09
1.386281654987999916e+09
1.386281677684999943e+09
1.386281700381000042e+09
1.386281723078000069e+09
1.386281745773999929e+09
1.386281768470999956e+09
1.386281791167999983e+09
1.386281802515000105e+09
1.386281813864000082e+09
1.386281836559999943e+09
1.386281859256999969e+09
1.386281870605000019e+09
1.386281881953999996e+09
1.386281904650000095e+09
1.386281927345999956e+09
1.386281950042999983e+09
1.386281972740000010e+09
1.386281995437000036e+09
1.386282018131999969e+09
1.386282040828999996e+09
1.386282063526000023e+09
1.386282086223000050e+09
1.386282108918999910e+09
1.386282131615000010e+09
1.386282154312000036e+09
1.386282165660000086e+09
1.386282177009000063e+09
1.386282199704999924e+09
1.386282222401999950e+09
1.386282245098000050e+09
1.386282267795000076e+09
1.386282290490999937e+09
1.386282313187999964e+09
1.386282335884999990e+09
1.386282358581000090e+09
1.386282381276999950e+09
1.386282403973999977e+09
1.386282426671000004e+09
1.386282449368000031e+09
1.386282460714999914e+09
1.386282472062999964e+09
1.386282494759999990e+09
1.386282506108000040e+09
1.386282517457000017e+09
1.386282540154000044e+09
1.386282562848999977e+09
1.386282585546000004e+09
1.386282608243000031e+09
1.386282630940000057e+09
1.386282653635999918e+09
1.386282676332000017e+09
1.386282699029000044e+09
1.386282721726000071e+09
1.386282744421999931e+09
1.386282755770999908e+09
1.386282767118999958e+09
1.386282789815000057e+09
1.386282812512000084e+09
1.386282835207999945e+09
1.386282857904999971e+09
1.386282880601999998e+09
1.386282903298000097e+09
1.386282925993999958e+09
1.386282948690999985e+09
1.386282971388000011e+09
1.386282994085000038e+09
1.386283016779999971e+09
1.386283039476999998e+09
1.386283050825000048e+09
1.386283062174000025e+09
1.386283084871000051e+09
1.386283107565999985e+09
1.386283130263000011e+09
1.386283152960000038e+09
1.386283175657000065e+09
1.386283187005000114e+09
1.386283198352999926e+09
1.386283221049000025e+09
1.386283243746000051e+09
1.386283266443000078e+09
1.386283289138999939e+09
1.386283311835999966e+09
1.386283334532000065e+09
1.386283345880000114e+09
1.386283357229000092e+09
1.386283379924999952e+09
1.386283402621999979e+09
1.386283425319000006e+09
1.386283448015000105e+09
1.386283470710999966e+09
1.386283493407999992e+09
1.386283516105000019e+09
1.386283538802000046e+09
1.386283561496999979e+09
1.386283584194000006e+09
1.386283606891000032e+09
1.386283629588000059e+09
1.386283640936000109e+09
1.386283652283999920e+09
1.386283674980000019e+09
1.386283697677000046e+09
1.386283720374000072e+09
1.386283743069999933e+09
1.386283765766000032e+09
1.386283788463000059e+09
1.386283811160000086e+09
1.386283833855999947e+09
1.386283856552999973e+09
1.386283867901000023e+09
1.386283879249000072e+09
1.386283901946000099e+09
1.386283924641999960e+09
1.386283935990999937e+09
1.386283947338999987e+09
1.386283970036000013e+09
1.386283992732000113e+09
1.386284015427999973e+09
1.386284038125000000e+09
1.386284060822000027e+09
1.386284083519000053e+09
1.386284106213999987e+09
1.386284128911000013e+09
1.386284151608000040e+09
1.386284174305000067e+09
1.386284197000999928e+09
1.386284219697000027e+09
1.386284231045000076e+09
1.386284242394000053e+09
1.386284265091000080e+09
1.386284287786999941e+09
1.386284310483000040e+09
1.386284333180000067e+09
1.386284355877000093e+09
1.386284378572999954e+09
1.386284401269999981e+09
1.386284423966000080e+09
1.386284446663000107e+09
1.386284469358999968e+09
1.386284492055999994e+09
1.386284514753000021e+09
1.386284526101000071e+09
1.386284537448999882e+09
1.386284560144999981e+09
1.386284571493999958e+09
1.386284582842000008e+09
1.386284605539000034e+09
1.386284628236000061e+09
1.386284650930999994e+09
1.386284673628000021e+09
1.386284696325000048e+09
1.386284719022000074e+09
1.386284741717999935e+09
1.386284764414000034e+09
1.386284787111000061e+09
1.386284809808000088e+09
1.386284821155999899e+09
1.386284832503999949e+09
1.386284855200999975e+09
1.386284877897000074e+09
1.386284900594000101e+09
1.386284923289999962e+09
1.386284945986999989e+09
1.386284968683000088e+09
1.386284991380000114e+09
1.386285014075999975e+09
1.386285036773000002e+09
1.386285059470000029e+09
1.386285082165999889e+09
1.386285104861999989e+09
1.386285116210999966e+09
1.386285127559000015e+09
1.386285150256000042e+09
1.386285172953000069e+09
1.386285195648000002e+09
1.386285218345000029e+09
1.386285241042000055e+09
1.386285252390000105e+09
1.386285263739000082e+09
1.386285286434999943e+09
1.386285309131000042e+09
1.386285331828000069e+09
1.386285354525000095e+09
1.386285377220999956e+09
1.386285399917999983e+09
1.386285411265000105e+09
1.386285422614000082e+09
1.386285445311000109e+09
1.386285468006000042e+09
1.386285490703000069e+09
1.386285513398999929e+09
1.386285536095999956e+09
1.386285558792000055e+09
1.386285581489000082e+09
1.386285604186000109e+09
1.386285626881999969e+09
1.386285649578000069e+09
1.386285672275000095e+09
1.386285694971999884e+09
1.386285706319999933e+09
1.386285717668999910e+09
1.386285740364000082e+09
1.386285763061000109e+09
1.386285785757999897e+09
1.386285808454999924e+09
1.386285831151000023e+09
1.386285853846999884e+09
1.386285876543999910e+09
1.386285899240999937e+09
1.386285921937000036e+09
1.386285933286000013e+09
1.386285944634000063e+09
1.386285967329999924e+09
1.386285990026999950e+09
1.386286001375000000e+09
1.386286012723000050e+09
1.386286035420000076e+09
1.386286058115999937e+09
1.386286080812999964e+09
1.386286103509000063e+09
1.386286126206000090e+09
1.386286148903000116e+09
1.386286171598999977e+09
1.386286194295000076e+09
1.386286216992000103e+09
1.386286239688999891e+09
1.386286262385999918e+09
1.386286285081000090e+09
1.386286296430000067e+09
1.386286307778000116e+09
1.386286330474999905e+09
1.386286353171999931e+09
1.386286375868000031e+09
1.386286398563999891e+09
1.386286421260999918e+09
1.386286443957999945e+09
1.386286466654000044e+09
1.386286489351000071e+09
1.386286512046999931e+09
1.386286534743999958e+09
1.386286557440000057e+09
1.386286580137000084e+09
1.386286591484999895e+09
1.386286602832999945e+09
1.386286625529999971e+09
1.386286636878000021e+09
1.386286648226000071e+09
1.386286670923000097e+09
1.386286693619999886e+09
1.386286716315999985e+09
1.386286739012000084e+09
1.386286761709000111e+09
1.386286784405999899e+09
1.386286807102999926e+09
1.386286829798000097e+09
1.386286852494999886e+09
1.386286875191999912e+09
1.386286886539999962e+09
1.386286897888999939e+09
1.386286920585000038e+09
1.386286943280999899e+09
1.386286965977999926e+09
1.386286988674999952e+09
1.386287011371000051e+09
1.386287034068000078e+09
1.386287056763999939e+09
1.386287079460999966e+09
1.386287102157000065e+09
1.386287124854000092e+09
1.386287147549999952e+09
1.386287170246999979e+09
1.386287181595000029e+09
1.386287192943000078e+09
1.386287215640000105e+09
1.386287238336999893e+09
1.386287261032999992e+09
1.386287283729000092e+09
1.386287306426000118e+09
1.386287317773999929e+09
1.386287329122999907e+09
1.386287351819999933e+09
1.386287374515000105e+09
1.386287397211999893e+09
1.386287419908999920e+09
1.386287442605999947e+09
1.386287465302000046e+09
1.386287476650000095e+09
1.386287487997999907e+09
1.386287510694999933e+09
1.386287533391999960e+09
1.386287556088000059e+09
1.386287578785000086e+09
1.386287601480999947e+09
1.386287624177999973e+09
1.386287646874000072e+09
1.386287669571000099e+09
1.386287692266999960e+09
1.386287714963999987e+09
1.386287737660000086e+09
1.386287760357000113e+09
1.386287771704999924e+09
1.386287783053999901e+09
1.386287805750000000e+09
1.386287828446000099e+09
1.386287851142999887e+09
1.386287873839999914e+09
1.386287896536999941e+09
1.386287919232000113e+09
1.386287941928999901e+09
1.386287964625999928e+09
1.386287987322999954e+09
1.386287998671000004e+09
1.386288010019000053e+09
1.386288032714999914e+09
1.386288055411999941e+09
1.386288066759999990e+09
1.386288078108999968e+09
1.386288100805000067e+09
1.386288123502000093e+09
1.386288146197999954e+09
1.386288168894999981e+09
1.386288191591000080e+09
1.386288214288000107e+09
1.386288236983999968e+09
1.386288259680999994e+09
1.386288282377000093e+09
1.386288305073999882e+09
1.386288327770999908e+09
1.386288350467000008e+09
1.386288361815000057e+09
1.386288373163000107e+09
1.386288395859999895e+09
1.386288418556999922e+09
1.386288441253999949e+09
1.386288463948999882e+09
1.386288486645999908e+09
1.386288509342999935e+09
1.386288532039999962e+09
1.386288554736000061e+09
1.386288577431999922e+09
1.386288600128999949e+09
1.386288622825999975e+09
1.386288645522000074e+09
1.386288656871000051e+09
1.386288668219000101e+09
1.386288690914999962e+09
1.386288702263000011e+09
1.386288713611999989e+09
1.386288736308000088e+09
1.386288759005000114e+09
1.386288781700999975e+09
1.386288804398000002e+09
1.386288827094000101e+09
1.386288849790999889e+09
1.386288872487999916e+09
1.386288895184000015e+09
1.386288917880000114e+09
1.386288940576999903e+09
1.386288951924999952e+09
1.386288963273999929e+09
1.386288985970999956e+09
1.386289008665999889e+09
1.386289031362999916e+09
1.386289054059999943e+09
1.386289076756999969e+09
1.386289099453000069e+09
1.386289122148999929e+09
1.386289144845999956e+09
1.386289167542999983e+09
1.386289190239000082e+09
1.386289212936000109e+09
1.386289235631999969e+09
1.386289246980000019e+09
1.386289258328999996e+09
1.386289281025000095e+09
1.386289303721999884e+09
1.386289326417999983e+09
1.386289349115000010e+09
1.386289371811000109e+09
1.386289383160000086e+09
1.386289394507999897e+09
1.386289417204999924e+09
1.386289439901000023e+09
1.386289462596999884e+09
1.386289485293999910e+09
1.386289507990999937e+09
1.386289530687999964e+09
1.386289542035000086e+09
1.386289553382999897e+09
1.386289576079999924e+09
1.386289598776999950e+09
1.386289621473999977e+09
1.386289644170000076e+09
1.386289666865999937e+09
1.386289689562999964e+09
1.386289712259999990e+09
1.386289734956000090e+09
1.386289757653000116e+09
1.386289780348999977e+09
1.386289803046000004e+09
1.386289825742000103e+09
1.386289837091000080e+09
1.386289848438999891e+09
1.386289871134999990e+09
1.386289893832000017e+09
1.386289916528000116e+09
1.386289939224999905e+09
1.386289961921999931e+09
1.386289984618000031e+09
1.386290007313999891e+09
1.386290030010999918e+09
1.386290052707999945e+09
1.386290075404999971e+09
1.386290098099999905e+09
1.386290120796999931e+09
1.386290132144999981e+09
1.386290143493999958e+09
1.386290166190999985e+09
1.386290188887000084e+09
1.386290211582999945e+09
1.386290234279999971e+09
1.386290256976999998e+09
1.386290279673000097e+09
1.386290302369999886e+09
1.386290325065999985e+09
1.386290347763000011e+09
1.386290370459000111e+09
1.386290393155999899e+09
1.386290415851999998e+09
1.386290427200000048e+09
1.386290438549000025e+09
1.386290461244999886e+09
1.386290483941999912e+09
1.386290506638999939e+09
1.386290529335000038e+09
1.386290552030999899e+09
1.386290574727999926e+09
1.386290597424999952e+09
1.386290620121999979e+09
1.386290642816999912e+09
1.386290665513999939e+09
1.386290688210999966e+09
1.386290710907999992e+09
1.386290722256000042e+09
1.386290733604000092e+09
第二次世界大战

编辑:

这更接近:找到每个300秒块结束时间(从数组的第一个值开始),然后使用布尔索引提取块并获取均值。仍然使用常规python进行循环。

span = a[-1] - a[0]
nbr_of_intervals = int((span//300) + 1)
ends = (np.zeros(nbr_of_intervals)+300).cumsum() + a[0]
averages = []
begin = a[0]
for end in ends:
    chunk = a[(begin <= a) & (a < end)]
    averages.append(chunk.mean())
    begin = end

进行一些广播。

q = a[:,None] >= ends    # shape (485,34) using the array values from the question.
r = q.argmax(axis=0)
r = r[r.nonzero()]       # shape (33,) - indices to split on
chunks = np.split(a,r)
avgs = [ary.mean() for ary in chunks]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将一维数组拆分为多个块

来自分类Dev

如何将字符串拆分为固定长度的块,而不是在单词之间?

来自分类Dev

将每个块分成多个块,具体取决于内容

来自分类Dev

将numpy数组拆分为不相等的块

来自分类Dev

使用numpy将一维数组划分为不同大小的块

来自分类Dev

如何将数组拆分为块并找到块的总和并将输出作为数组存储在pyspark中

来自分类Dev

如何将A * A std :: array拆分为B * B的块?

来自分类Dev

如何将代码块拆分为列表?

来自分类Dev

如何将A * A std :: array拆分为B * B的块?

来自分类Dev

将数组拆分为大致相等的块

来自分类Dev

MongoDB。将嵌入的数组拆分为块

来自分类Dev

如何将arraylist拆分为二维数组?

来自分类Dev

将字符串拆分为不同长度的块

来自分类Dev

如何使用biopython将多fasta文件拆分为相等序列长度的块并更改标题

来自分类Dev

如何使用php将字符串拆分为非固定长度的块?

来自分类Dev

将数据框/系列拆分为每个可能的块

来自分类Dev

如何将列表拆分为numpy数组?

来自分类Dev

如何将数组拆分为多个数组,每个数组都有唯一的名称

来自分类Dev

如何将二进制文件拆分为N位块

来自分类Dev

如何将文件拆分为关键字定义的块

来自分类Dev

如何将重复的数据块拆分为多列并解析日期时间?

来自分类Dev

如何将ref拆分为跨多个命令推送的块?

来自分类Dev

如何将字符串列表拆分为较小的字符串列表块

来自分类Dev

如何将标头分隔的数据拆分为不同的块?

来自分类Dev

将大型PHP数组拆分为较小的javascript块

来自分类Dev

将数组拆分为块并重复前面的元素

来自分类Dev

将数组拆分为数量不确定的块

来自分类Dev

如何将一行整数拆分为数组?

来自分类Dev

如何将2D矩阵划分为块并将每个块乘以其中心元素?

Related 相关文章

  1. 1

    将一维数组拆分为多个块

  2. 2

    如何将字符串拆分为固定长度的块,而不是在单词之间?

  3. 3

    将每个块分成多个块,具体取决于内容

  4. 4

    将numpy数组拆分为不相等的块

  5. 5

    使用numpy将一维数组划分为不同大小的块

  6. 6

    如何将数组拆分为块并找到块的总和并将输出作为数组存储在pyspark中

  7. 7

    如何将A * A std :: array拆分为B * B的块?

  8. 8

    如何将代码块拆分为列表?

  9. 9

    如何将A * A std :: array拆分为B * B的块?

  10. 10

    将数组拆分为大致相等的块

  11. 11

    MongoDB。将嵌入的数组拆分为块

  12. 12

    如何将arraylist拆分为二维数组?

  13. 13

    将字符串拆分为不同长度的块

  14. 14

    如何使用biopython将多fasta文件拆分为相等序列长度的块并更改标题

  15. 15

    如何使用php将字符串拆分为非固定长度的块?

  16. 16

    将数据框/系列拆分为每个可能的块

  17. 17

    如何将列表拆分为numpy数组?

  18. 18

    如何将数组拆分为多个数组,每个数组都有唯一的名称

  19. 19

    如何将二进制文件拆分为N位块

  20. 20

    如何将文件拆分为关键字定义的块

  21. 21

    如何将重复的数据块拆分为多列并解析日期时间?

  22. 22

    如何将ref拆分为跨多个命令推送的块?

  23. 23

    如何将字符串列表拆分为较小的字符串列表块

  24. 24

    如何将标头分隔的数据拆分为不同的块?

  25. 25

    将大型PHP数组拆分为较小的javascript块

  26. 26

    将数组拆分为块并重复前面的元素

  27. 27

    将数组拆分为数量不确定的块

  28. 28

    如何将一行整数拆分为数组?

  29. 29

    如何将2D矩阵划分为块并将每个块乘以其中心元素?

热门标签

归档