我想用统一选择的浮点数填充数组,但是当我尝试这样做时,我得到的是整数:
#Initial parameters
P = np.full(1, 0)
lower_bounds = np.full(1, 0)
upper_bounds = np.full(1, np.pi)
def candidate(P):
for k in range(len(P)):
P[k] = np.random.uniform(lower_bounds[k],upper_bounds[k])
return P
print(candidate(P))
此打印[0],[1],[2]或[3],而
print(np.random.uniform(lower_bounds[0],upper_bounds[0]))
根据需要打印浮点数。我不确定为什么会这样。
初始化时,P
成为一个整数数组。
P = np.full(1, 0)
print(P.dtype) # prints dtype('int64')
[稍后将np.random.uniform
的结果分配给P[k]
时,np.random.uniform
返回的浮点值将被截断,而您只得到整数部分。
改为使用P = np.full(1,0.0)
或P = np.full(1,0, dtype=float)
。