Python 如何在numpy数组中舍入特定的数字选择?

Python 如何在numpy数组中舍入特定的数字选择?,python,numpy,Python,Numpy,从随机numpy列表中,我只想对pad输入索引中的数字进行四舍五入。下面的代码是我正在尝试但不起作用的代码。解决办法是什么 padInputs = [0, 2, 7, 8] random = np.random.rand(13) for padInput in padInputs: np.around(random[padInput]) 比如说, Input [0.87720789, 0.88194004, 0.06039337, 0.13874861, 0.85552875] Ou

从随机numpy列表中,我只想对pad输入索引中的数字进行四舍五入。下面的代码是我正在尝试但不起作用的代码。解决办法是什么

padInputs = [0, 2, 7, 8]
random = np.random.rand(13)
for padInput in padInputs:
    np.around(random[padInput])
比如说,

Input
[0.87720789, 0.88194004, 0.06039337, 0.13874861, 0.85552875]

Output
[0.87720789, 1, 0, 0.13874861, 0.85552875]
试着这样做:

random[padInputs] = np.around(random[padInputs])
请注意,这将不使用小数进行舍入,您可以通过以下方式将其作为参数传递给舍入:

random[padInputs] = np.around(random[padInputs], decimals=2)

下面的一行代码可以替换for循环,并完全满足您的需要


np.put(random,paddinputs,np.around(random))
代码中的问题是您必须将结果分配回数组,因为
np.around
不在内存函数中。 像

对于padInputs中的padInput,
:
random[padInput]=np.around(random[padInput])
随机的
阵列([1,0.53206402,1,0.18129529,0.71238687,
0.92995779, 0.21934659, 0.        , 1.        , 0.26042076,
0.76826639, 0.82750894, 0.35687544])
但它应该被@Bruno在他的答案中定义的一行所取代