将列表转换为数组时 round() 的问题

Problem with round() when turning a list into an array

我创建了一个包含四舍五入元素的列表:

In [1] list = [(0.382, 0.618, round(411.8724133605957,2))]
       list

好吧,作为 list:

Out [1] [(0.382, 0.618, 411.87)]

但是当我使用 np.array() 将其转换为数组时,所有小数点再次弹出:

In [2] array = np.array(list)
       array

Out [2] array([[3.8200e-01, 6.1800e-01, 4.1187e+02]])

然后我尝试 np.round()np.around() 到那个数组但没有任何反应:

In [3] np.round(array,2), np.around(array,2)

Out [3] (array([[3.8000e-01, 6.2000e-01, 4.1187e+02]]),
         array([[3.8000e-01, 6.2000e-01, 4.1187e+02]]))

虽然很有趣,但我不明白为什么,以及如何获得如下数组:

array[[0.382, 0.618, 411.87]]

任何想法都非常感谢,谢谢!

这就是 numpy 表示这些小数的方式,值是相同的。

如果您希望它定期显示,请尝试np.set_printoptions

在你的代码之前,也许在你下面的一行 numpy import 中,添加这行代码:

np.set_printoptions(suppress=True)

然后打印 array 将如下所示:

[[   0.382    0.618  411.87 ]]