NumPy: TypeError: reshape() получил неожиданный аргумент ключевого слова 'order'
Я получаю следующую ошибку при изменении 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 ответ
Вы должны получить желаемый результат, позвонив
from fipy import numerix as nx
nx.reshape(voltage.grad[0], (ny, nx))
FiPy переопределяет ряд подпрограмм NumPy для самостоятельной работы со своими собственными структурами данных. Вы должны всегда использовать fipy.numerix вместо numpy при работе с объектами FiPy.
Если вы не знаете, FiPY теперь включает MatplotlibStreamViewer, который может либо удовлетворить ваши потребности, либо, по крайней мере, показать вам манипуляции с данными, которые вам необходимо выполнить для вашего собственного дисплея.
Определенно что-то не так во взаимодействии между numpy.reshape(), fipy.numerix.reshape() и fipy.CellVariable.reshape(). Я подал заявку, чтобы разобраться в этом. Спасибо, что подняли вопрос.