import numpy as np, itertools
x1 = np.linspace(0.1, 3.5, 3)
x2 = np.arange(5, 24, 3)
x3 = np.arange(50.9, 91.5, 3)
def calculate(x1,x2,x3):
res = x1**5+x2*x1+x3
return res
products = list(itertools.product(x1,x2,x3))
results = [calculate(a,b,c) for a,b,c in products]
我必须将结果保存为查找表以备将来使用。 在我的实际情况中,该文件将非常大约1GB。所以我以后需要更快的方式来阅读该文件。 将来保存以供访问的最佳方法和文件格式是什么?
outputs = np.column_stack((products,results))
np.savetxt('test.out',outputs, delimiter = ',')
我将来的用法如下:
#given_x1,given_x2,given_x3 = 0.2, 8, 60
#open the look up table
#read the neighbouring two values for the given values
#linearly interpolate between two values for the results.
答案 0 :(得分:1)
我从列表理解中构建一个一维数组并将其保存:
In [37]:
a = np.array([calculate(a,b,c) for a,b,c in products])
np.savetxt(r'c:\data\lut.txt', a)
In [39]:
b = np.loadtxt(r'c:\data\lut.txt')
np.all(a==b)
Out[39]:
True