将列表转换为数组时 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 ]]
我创建了一个包含四舍五入元素的列表:
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 ]]