我想创建一个向量,其成分是从q
到给定数字0.
的{{1}}有理数。我可以使用以下算法做到这一点
n
它应该返回import numpy as np
n = 60.
q=200
dn = 1.*n/q
X=np.arange(0.,n,dn)
print len(X)
。
这种方法在某些情况下有效,例如上面的示例。但是,200
可能是有理数或周期数。在那种情况下,它不会被过多地近似,因此dn
的长度最终是X
而不是q+1
。
例如,在q
的情况下,算法返回q=220
而不是221
。
避免此问题的最佳方法是什么?
答案 0 :(得分:1)
我认为您想要linspace
X = np.linspace(0, n, q)
这类似于:
gen = (i * n / (q-1.0) for i in range(q))
X = np.fromiter(gen, float)