2012-06-01 22 views
1

在今晚一段時間裏一直在努力。在numpy數組中標準化子數組的長度來對它們進行數學計算

我有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)) ]) 

會那些工作,我做錯了什麼或者是有沒有這樣做的更好的方法?

謝謝!

+2

存儲numpy數組的Python列表是否可行?然後可以去'peaks = array([s.max()for segments_np])'。 – huon

+0

是的,迄今爲止是可行的。謝謝! – Scott

+0

備案,我: list(segments_np) 然後dbaupp提供的代碼。 你想正式回答這個問題嗎? thax。 – Scott

回答

1

嘗試將分段存儲爲numpy數組的Python列表。你可以去

peaks_np = array([s.max() for s in segments]) 
+0

如果我仍然留意,是否有一種有效的方法可以將這些峯的索引返回到單獨的數組中? – Scott

+0

嘗試用['.argmax']替換'.max'(http://docs.scipy.org/doc/numpy/reference/generated/numpy.argmax.html)。 – huon

+0

感謝您的耐心,我應該知道這一點。我想,睡覺的時間了。 – Scott

相關問題