当我尝试运行scipy intrap2d函数时,我得到了一个关于矩形数据表的错误,我已经使用panda pivot_table得到了初始的x和y值,并且正在生成z数组。ValueError:在x. size = m且y. size = n的规则格网上,如果z. ndim == 2,则z的形状必须为(n,m)如何解决此问题?
qhhrdooz1#
scipy intrep2d init函数检查x,y和z的大小。如果表格是矩形网格,它检查z的形状是否等于(len(y),len(x))的形状。如果z的形状不符合x和y的长度,则抛出错误。
if rectangular_grid: if z.ndim == 2: if z.shape != (len(y), len(x)): raise ValueError("When on a regular grid with x.size = m " "and y.size = n, if z.ndim == 2, then z " "must have shape (n, m)")
参考:https://gemfury.com/stream/python:scipy/0.15.0/content/interpolate/interpolate.py此错误可通过校正x列和y列的位置交换来解决如果使用Panda pivot_table
change df.pivot_table(values='z', index='x', columns='y') TO df.pivot_table(values='z', index='y', columns='x')
或者,您可以更新z数组并根据x和y长度排列它。
1条答案
按热度按时间qhhrdooz1#
scipy intrep2d init函数检查x,y和z的大小。如果表格是矩形网格,它检查z的形状是否等于(len(y),len(x))的形状。如果z的形状不符合x和y的长度,则抛出错误。
参考:https://gemfury.com/stream/python:scipy/0.15.0/content/interpolate/interpolate.py
此错误可通过校正x列和y列的位置交换来解决
如果使用Panda pivot_table
或者,您可以更新z数组并根据x和y长度排列它。