numpy.linspace 生成均匀间隔 在起始值和结束值之间 float 样本。
print (numpy.linspace(0.0, 1.0, num=9))
# [0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1]
print (numpy.linspace(9000.0, 1000.0, num=9))
# [9000. 8000. 7000. 6000. 5000. 4000. 3000. 2000. 1000.]
如何在起始值和结束值之间生成指数间隔的样本?
例如,2的次方:
[0. 0.016 0.0625 0.141 0.25 0.391 0.562 0.766 1.]
感谢您的任何建议。
请您参考如下方法:
对于介于 0 和 1 之间的情况,您可以只取数组的平方:
print (numpy.linspace(0.0, 1.0, num=9)**2 )
# [0. 0.016 0.0625 0.141 0.25 0.391 0.562 0.766 1.]
或
print (numpy.power(numpy.linspace(0.0, 1.0, num=9), 2) )
# [0. 0.016 0.0625 0.141 0.25 0.391 0.562 0.766 1.]
编辑:
更通用的方法可能是 1) 取起始数和终止数的倒数幂,2) 获取这些值之间的线性间距,3) 返回数组的幂。
import numpy as np
def powspace(start, stop, power, num):
start = np.power(start, 1/float(power))
stop = np.power(stop, 1/float(power))
return np.power( np.linspace(start, stop, num=num), power)
print( powspace(0, 1, 2, 9) )
# [0. 0.016 0.0625 0.141 0.25 0.391 0.562 0.766 1.]
然后你可以在任何正值之间移动。例如,从 9000 到 1000,值间隔为 3 的次方:
print( powspace(9000, 1000, 3, 9) )
# [9000. 7358.8 5930.4 4699.9 3652.6 2773.7 2048.5 1462.2 1000.]
