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(). Я подал заявку, чтобы разобраться в этом. Спасибо, что подняли вопрос.

Другие вопросы по тегам