NumPy:TypeError:reshape()得到一个意外的关键字参数'order'

时间:2014-01-04 22:13:13

标签: python numpy fipy

重塑numpy ndarray时出现以下错误

DeprecationWarning: :func:`reshape` is deprecated, use :func:`numerix.reshape()<numpy.reshape>` instead!
return reshape(newshape, order=order)
Traceback (most recent call last):
File "./render2.py", line 374, in <module>
,u=np.reshape(voltage.grad[0], (ny, nx))
File "/home/jana/Builds/lib/python2.6/site-packages/numpy/core/fromnumeric.py", line 172,  in reshape
return reshape(newshape, order=order)
File "/home/jana/Builds/lib/python2.6/site-packages/fipy/tools/decorators.py", line 151, in newfunc
return func(*args, **kwds)
TypeError: reshape() got an unexpected keyword argument 'order'

以下是产生此错误的代码部分。注意:plot.py是用户定义的模块。

plot.streamlinePlot(x = x
                   ,y = y
                   ,u=np.reshape(voltage.grad[0], (ny, nx))
                   ,v=np.reshape(voltage.grad[1], (ny, nx))
                   ,filename='Analysis/electricFieldStreamPlot_%s.png'
                   ,show=False
                   ,clear=True)

的输出
print "Voltage shape =", voltage.shape
print "Voltage.grad[0] shape =", voltage.grad[0].shape
print "ny times nx =", ny*nx 

Voltage shape = (269700,)
Voltage.grad[0] shape = (269700,)
ny times nx = 269700

我正在运行FiPy 3.0和NumPy 1.7.2。 有线索吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您应该通过调用

获得所需的结果
from fipy import numerix as nx
nx.reshape(voltage.grad[0], (ny, nx))

FiPy会覆盖许多NumPy例程,以便以自洽的方式处理自己的数据结构。使用FiPy对象时,应始终使用fipy.numerix而不是numpy。

如果您不知道,FiPY现在包含一个MatplotlibStreamViewer,可能满足您的需求,或者至少向您展示您需要为自己的显示器执行的数据处理。

numpy.reshape(),fipy.numerix.reshape()和fipy.CellVariable.reshape()之间的交互肯定有问题。我已经提交了a ticket来调查此事。谢谢你提出这个问题。