Попытка исправить проблему устаревания NumPy asscalarPython

Программы на Python
Ответить
Anonymous
 Попытка исправить проблему устаревания NumPy asscalar

Сообщение Anonymous »

При попытке обновить старый скрипт Python я столкнулся со следующей ошибкой:

Код: Выделить всё

module 'numpy' has no attribute 'asscalar'. Did you mean: 'isscalar'?
В частности:

Код: Выделить всё

def calibrate(x, y, z):
# H = numpy.array([x, y, z, -y**2, -z**2, numpy.ones([len(x), 1])])
H = numpy.array([x, y, z, -y**2, -z**2, numpy.ones([len(x)])])
H = numpy.transpose(H)
w = x**2

(X, residues, rank, shape) = linalg.lstsq(H, w)

OSx = X[0] / 2
OSy = X[1] / (2 * X[3])
OSz = X[2] / (2 * X[4])

A = X[5] + OSx**2 + X[3] * OSy**2 + X[4] * OSz**2
B = A / X[3]
C = A / X[4]

SCx = numpy.sqrt(A)
SCy = numpy.sqrt(B)
SCz = numpy.sqrt(C)

# type conversion from numpy.float64 to standard python floats
offsets = [OSx, OSy, OSz]
scale = [SCx, SCy, SCz]

offsets = map(numpy.asscalar, offsets)
scale = map(numpy.asscalar, scale)

return (offsets, scale)
Я обнаружил, что asscalar устарел с версии NumPy 1.16. Я нашел одну ссылку, в которой говорится об использовании numpy.ndarray.item, но понятия не имею, как это сделать.
Я попробовал это:

Код: Выделить всё

offsets = map.item(offsets)
scale = map.item( scale)
но получил эту ошибку:

Код: Выделить всё

AttributeError: type object 'map' has no attribute 'item'
Как это решить?


Подробнее здесь: https://stackoverflow.com/questions/761 ... tion-issue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»