2014-06-17 162 views
-3

我從來沒有使用Python,我從手冊中看到一段代碼,我很想知道它是什麼意思。-Python劇情代碼

這是從手動代碼:

import h5py 
    h5file = h5py.File('Output/ScottCreek250b/simulation.results.DY.hdf5') 
    channel_flows = h5file['Channel/Qc_out'][...] 
    plt.plot(channel_flows[:, 0]) 
    plt.ylim((-0.01,0.01)) 
    plt.title('Streamflow at outlet', fontweight='bold') 
    plt.ylabel('Flow ($\mathbf{m^3/s}$)') 
    plt.xlabel('Model time-steps (24 hours)') 

我想知道這是什麼二線的意思,尤其是[...],什麼是[:, 0][:, :10]代表。

channel_flows = h5file['Channel/Qc_out'][...] 
    plt.plot(channel_flows[:, 0]) 

    soil_stores = h5file['Soil/V_s'][...] 
    plt.plot(soil_stores[:, :10]) 
+0

這就是'numpy'索引 - 請參閱http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html – jonrsharpe

+0

我可以假設數據結構與列表目標類似於R或像3D陣列? [...]將表示x,y,z值。 –

+1

我不知道R - 閱讀我已經鏈接到的文檔,這解釋了它是如何工作的。 – jonrsharpe

回答

3

的numpy的文件將無法解釋爲什麼指數被用作他們,特別是對h5file首當其衝:

[...]在h5file線需要實際數據複製;如果不是,則通過參考,這可能並不總是人們想要的。然而,在這種情況下,它看起來沒有必要,可能只是一種習慣的力量。

之後,您剩下的是二維數據數組(注意:不是您建議的3D),其中第一維在整個範圍內索引(通過使用唯一的':'),第二維內部維度被索引爲單個值(0)或前10個值的範圍(:10,其中00:10是默認值,可以省略)。