Numpy和Scipy都有许多对数据执行操作的有用函数(即积分、傅立叶变换、基线校正等)。但是,我还没有看到有关将X-Y数据输入到这些函数中的一般形式的文档。假设我有一个波长和吸光度值的光谱,或者机械性能测试的应力和应变数据。在
一般来说:
使用两个一维Numpy数组,一个用于X,一个用于Y?
使用一个二维Numpy数组,X在一个轴上,Y在另一个轴上?
使用单个structured array?
当你有XY-Z数据时,这是如何变化的?在
XY数据最通用的数据结构是什么,它允许我直接将数据输入到这些函数中的大多数函数中,而无需重新定义如何存储数据?在
检查每个包和操作类或函数的文档。
scipy
是一个由不同的人编写的包的集合,通常为旧的Fortran或C包提供接口。因此输入格式受这些源的约束。它们也取决于什么是适合这个问题的。在通常在常规网格上生成值比较方便。例如,使用}和}值来定义二维空间。结果可以是3个2d数组}值,以及作为这些值函数的
np.meshgrid
或{arange
或{x
和{z
。在但现实世界的数据通常是以分散点的形式提供的。然后,每个点都是一个
x
,y
位置,并有一个z
值。你不能把它们转换成2d数组,至少没有插值。所以三个一维数组是合适的表示。或者一个(n, 3)
矩阵,每个变量对应一列。或者,如果这些值有不同的数据类型-比如说x和y的整数,z的浮点,然后是一个有3个字段的结构化数组。在通常数据是从csv文件加载的-这些列表示那些
x,y,z
值,可能带有字符串标签和多个z
值。对于混合的数据类型,它们通常使用genfromtxt
进行加载,从而得到一个1d结构化数组。在使用统一的数据类型很容易从结构化数组映射到多个数组。有时,您只需使用字段名进行索引,其他情况下可能需要
view
。在要深入研究这个问题,您可能需要扩展需要使用的数据类型和包。在
http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html#scipy.interpolate.griddata。
interpolate.griddata
说明了点数据和网格数据的使用。在相关问题 更多 >
编程相关推荐