所以我有以下代码片段:
with open('dataset/train/problem.csv', 'r') as p:
raw_x = csv.reader(p)
data_x = []
for ix in raw_x:
data_x.append([float(i) for i in ix])
print(data_x)
这将打印以下输出:
[[217.0, 118.0, 0.63, 755.0, 1071.0], [217.0, 118.0, 0.63, 755.0, 1071.0],...]
现在我正在尝试将此结构转换为一个numpy浮点数组,以便我可以将它与scikit-learn一起用作观察输入。但是当我尝试做以下时
X = np.array(data_x)
print(X)
它给出了以下结果:
[ 2.17000000e+02 1.18000000e+02 6.30000000e-01 7.55000000e+02
1.07100000e+03]
...
[ 2.17000000e+02 1.18000000e+02 6.30000000e-01 7.55000000e+02
1.07100000e+03]
它仍然浮动,但十进制值不正确。
一直试图弄清楚为什么会发生这种情况,因为源数组也在浮点数中。我也试过提供type=float
和astype
,但似乎没有任何效果。
谢谢!
答案 0 :(得分:1)
数组中的值相同。例如,2.1700000000e+2
为2.17 x 10^2
或217
,与原始数组中的相同。
numpy数组使用科学记数法而不是标准的十进制形式。
答案 1 :(得分:0)
列表和数组中的值相同。这只是一种不同的表现形式。
您可以使用科学记数法格式化Python float:
>>> '{:e}'.format(11.7)
'1.170000e+01'
NumPy使用这种表示方式。这就是全部。