如何获取数组各元素小数位并保存?
我有一个3维数组,我要对它进行如下处理:1:以最后一个维度为单位进行归一化;
2:保存归一化值的两位小数;
3:获取每一个元素两位小数的值,并保存在原数组的对应位置上。例如:0.62,就获取62,然后保存在0.62本来在数组的位置上
我的思路和代码如下:
a=
b=
c=
d=
a=(a-np.min(a))/(np.max(a)-np.min(a))#归一化
b=(b-np.min(b))/(np.max(b)-np.min(b))
data=np.array([,])#构建数组,2*1*3
data1=np.around(data,decimals=2,out=None)#保留两位小数
data2=data1*100#扩大100倍,以获取小数点后面的数值
=data2.shape
data3=np.array([,])#data3为理论上我想得到的数组
# print(data1,end='\n')
# print('乘100后',end='\n')
print(data2,data2,end='\n')
print(data3,data3)
------------------------------------------运行结果--------------------------------
[[]
[]] 28.999999999999996
[[]
[]] 29
Process finished with exit code 0
可以看到使用我写的程序结果对照我期望得到的结果(下方的数组)有两个问题:
1:每个元素后面有个小数点
2:我取第二行第二个元素29的值,返回的确实28.999.。。。
求大神解答我哪里有问题? 小数精度问题,使用from decimal import Decimal可以避免这样的问题 永恒的蓝色梦想 发表于 2020-5-20 11:02
小数精度问题,使用可以避免这样的问题
from decimal import Decimal
import numpy as np
我加上了可还是不行 一只大蟒蛇 发表于 2020-5-20 11:06
from decimal import Decimal
import numpy as np
你加上了你可得用啊……把你程序里所有的数都改成 Decimal 额 不是很懂你的意思,我这里不是已经把所有的数改成Decimal了吗?
data1=np.around(data,decimals=2,out=None)#保留两位小数 本帖最后由 jinlovelive 于 2020-5-20 16:42 编辑
np的问题,先自己写个处理函数,处理完数据再np构建吧
a = jinlovelive 发表于 2020-5-20 16:11
np的问题,先自己写个处理函数,处理完数据再np构建吧
可以了!看来确实是np的问题,谢谢!
页:
[1]