重塑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。 有线索吗?谢谢!
答案 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来调查此事。谢谢你提出这个问题。