先说一下:numpy4D到1D既便宜又快捷。在
在任何情况下,当1D向量发生在处理过程中时,np为您提供了一个强大的技巧来使用它的.view的概念。从技术上讲,您可以让numpy根据需要引用原始numpy.ndarray的一部分(或全部),而不需要任何重复的数据单元(一旦大小增加,RAM中效率低下的数据结构停止工作,这一点非常重要)。在
你可以简单地将完整的4D | 5D | nD坐标存储在一个装备齐全的数组中,根据需要智能地引用1D-组件:XYZUV_any_dimensionalityObservationDataPointsARRAY[:,0] == ( x0, y0, z0, u0, v0 )
XYZUV_any_dimensionalityObservationDataPointsARRAY[:,1] == ( x1, y1, z1, u1, v1 )
# and still use 1D-component vectors, where appropriate ( without DUPs )
XYZUV_any_dimensionalityObservationDataPointsARRAY[0,:] == X # 0-based index
XYZUV_any_dimensionalityObservationDataPointsARRAY[1,:] == Y
XYZUV_any_dimensionalityObservationDataPointsARRAY[2,:] == Z
...
XYZUV_any_dimensionalityObservationDataPointsARRAY[4,:] == V
可以把它们粘在一起
^{pr2}$
情节
因此,一旦需要输入适当的函数语法,绘图过程仍然可以重用部分视图:
X保存为1DXYZUV[0,:] # X via a view taken: 1st column and all rows +[ NO RAM ]
Y保存为1DXYZUV[1,:] # Y via a view taken: 2st column and all rows +[ NO RAM ]
UV保存为2DXYZUV[3:5,:] # UV via a view taken at all columns in [3:5] +[ NO RAM ]
UV粘在2Dnp.vstack( ( U, V ) ) # UV via an ad-hoc *stack() will allocate +[new RAM ]
本文介绍如何利用NumPy的.view特性高效处理多维数组数据,通过引用而非复制数据的方式节省内存资源。文中详细展示了如何将高维数据如4D或5D数组映射到1D数组,以及如何在绘图等应用场景中复用这些视图。
3172

被折叠的 条评论
为什么被折叠?



