我继承了一大块代码,作为一个新手,我无法理解它的复杂性。它正在格式化生成的2x1数组,以作为matplotlib.LineCollect的线段传递
coar[t] = na[j]
coart = coar.reshape(-1,1,2)
segments = np.hstack([coart[:-1],coart[1:]])
请更正我的术语: 它对1x2数组na进行迭代,并将它们放入“coar”中“数组数组”
coar
[[51 50]
[52 50]
[52 49]
[52 48]] <type 'numpy.ndarray'>
如何将(-1,1,2)中的参数整形为“数组中的数组中的数组”
coart:
[[[51 50]]
[[52 50]]
[[52 49]]
[[52 48]]] <type 'numpy.ndarray'>
最后,hstack使用LineCollect将要绘制的点对绘制为线段。它似乎使用了带[:-1]的-1列?负的列索引?我不明白这是怎么回事
[[[51 50]
[52 50]]
[[52 50]
[52 49]]
[[52 49]
[52 48]]] <type 'numpy.ndarray'>
怎么回事。。。 任何关于这些函数、格式和数据类型的启示都是非常棒的
既然您是新手,那么指出python具有优秀的文档可能会有所帮助。首先,可以在这里找到np.reforme文档: http://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html 但为了给你完整的故事: 对于重塑函数,A-1告诉numpy根据尺寸的长度推断尺寸。 因此,在这种情况下,如果您在重塑后检查coart的形状,您将发现:
对于下一部分,您对索引感到困惑,这里有关于索引的优秀文档:http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html 但为了抓住要点,python将-1解释为n+i,其中n是数组的长度,i是负数。所以在您的例子中-1实际上意味着3。而且由于python使用基于0的索引,所以它们不计算最后一个数字,所以:
在您的例子中,意味着将数组从元素0取到2(因为不包括最后的数字3)
意思是从元素1开始到结束(所以不要包括元素0)
如您所见,水平堆叠告诉它将第0行堆叠在第1行的顶部,将第1行堆叠在第2行的顶部,将第2行堆叠在第3行的顶部
相关问题 更多 >
编程相关推荐