numpy.random.uniform应用于数组的索引会产生整数

问题描述 投票:0回答:1

我想用统一选择的浮点数填充数组,但是当我尝试这样做时,我得到的是整数:

#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]))

根据需要打印浮点数。我不确定为什么会这样。

python arrays numpy random
1个回答
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)

© www.soinside.com 2019 - 2024. All rights reserved.