如何使用numpy savez保存lambda函数?

2024-10-01 07:39:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道savez_compressed可以保存从scipy生成的函数。有没有办法保存lambda函数

尝试:

import numpy as np
from scipy.interpolate import interp1d
xAxis = np.array([1,2,3,4])
data = np.array([1,3,5,6])

yAxisInterp = interp1d(xAxis, data, kind='linear')

np.savez_compressed('myDataLambda.npz', yAxisInterp=yAxisInterp)
print('yAxisInterp is saved')

# Following command does not work
# ------------------------------
yAxisLambda = lambda x : x

np.savez_compressed('myData.npz', yAxisLambda=yAxisLambda)
print('yAxisLambda is saved')

Tags: lambda函数importdatanpscipyarraycompressed
1条回答
网友
1楼 · 发布于 2024-10-01 07:39:56

否,numpy.savez保存scipy中的函数,它保存从这些scipy函数返回的对象

也就是说,当您这样做时:

yAxisInterp = interp1d(xAxis, data, kind='linear')

您已经创建了一个数组,这就是您在执行以下操作时要保存的内容:

np.savez_compressed('myDataLambda.npz', yAxisInterp=yAxisInterp)

您没有保存该函数

因此,您不能使用numpy.savez(和相关方法)保存函数、任何函数

相关问题 更多 >