2014-06-17 128 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是默认值,可以省略)。