1

今晚为此苦苦挣扎了一段时间。

我有numpy具有不同长度的数据子数组的数组。

segements_np = 
[ [   30.    20.    20.    30.    40.    50.    50.    60.    50.    70.
      70.    60.    70.    60.    80.    80.    90.    90.    90.   100.
     100.   110.   120.   560.   510.   460.   430.   380.    380   370
     360.   320.   320.   300.   250.    80.    80.    80.    60.    70.
      80.    80.    70.    70.    60.    70.    60.    70.    70.    70.
      70.    70.    60.    60.    60.    70.    50.    50.    50.    40.
      40.    40.    40.    30.    40.    40.    40.    40.    40.]

  [   30.    40.    50.    50.    60.    50.    70.    70.    60.    70.    
     560.   510.   460.   430.   380.   360.   320.   320.   300.   250.
      40.    40.    40.    30.    40.    40.    40.    40.    40.]]

我不知道加载数据文件时每个段的大小,也不知道我将拥有多少段。我有将数据文件分成这些段的脚本。

我想对它们进行各种计算,因此是numpy数组。例如,我想segments_np.max()

但是,由于它们的大小不同,这些命令当然不会按原样工作。

我尝试将数组大小(零)初始化为我知道不会被我分段的数据填充的大小,然后尝试将实际数据值添加到该大小(初始化数组)中。从而标准化每个子数组的大小。但是,我无法正确初始化它,也无法将数据复制到初始化数组中。

我也试过:

peaks_np = array([ segments_np.max(i) for i in range( len(segments_np) ) ])

这些会起作用吗?我做错了什么还是有更好的方法来做到这一点?

谢谢!!!

4

1 回答 1

1

尝试将段存储为 numpy 数组的 Python 列表。然后你可以去

peaks_np = array([s.max() for s in segments])
于 2012-06-01T06:57:15.683 回答