Python Загрузить файл npz включен Scipy Object - PullRequest
0 голосов
/ 08 октября 2019

Не могу понять, как правильно загрузить объект scipy. Я посмотрел похожий вопрос « Сохранить объект scipy в файл », но пример dict не работает для моей ситуации.

#!/usr/bin/python3.5
import numpy as np
x1=np.array([1,2,3,4,5,6,7])
y1=np.array([10,20,30,40,50,60,70])

# Interpolate
from scipy.interpolate import interp1d
interpFunc = interp1d(x1, y1, kind='cubic')
print('The intermediadate value is',interpFunc(2.5))

import os as osCommand
# Save
fileSaveDir = osCommand.getcwd() + "/test.npz"
np.savez_compressed(fileSaveDir,x1=x1,y1=y1,interpFunc=interpFunc)

# Let''s Load
data=np.load(fileSaveDir,'r',allow_pickle=True)
print(data['interpFunc'])
recallFunc=data['interpFunc']
print(recallFunc.item()[2.5])

Промежуточное значение равно 25. Это дает следующую ошибку:

The intermediadate value is 25.0
<scipy.interpolate.interpolate.interp1d object at 0x7ff3df5a8048>
Traceback (most recent call last):
  File "general.py", line 21, in <module>
    print(recallFunc.item()[2.5])
TypeError: 'interp1d' object is not subscriptable

Если я должен засолить модуль, кто-то может показать мне?

1 Ответ

0 голосов
/ 08 октября 2019

Решение

print(recallFunc.item()(2.5))

или лучше,

recallFunc=data['interpFunc'].item()
print(recallFunc(2.5))

Спасибо hpaulj

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...