|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我有一个3维数组,我要对它进行如下处理:
1:以最后一个维度为单位进行归一化;
2:保存归一化值的两位小数;
3:获取每一个元素两位小数的值,并保存在原数组的对应位置上。例如:0.62,就获取62,然后保存在0.62本来在数组的位置上
我的思路和代码如下:
a=[1,2,3,4,5,6]
b=[3,5,5,10,7,8]
c=[0,20,40,60,80,100]
d=[0,29,29,100,57,71]
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([[a],[b]])#构建数组,2*1*3
data1=np.around(data,decimals=2,out=None)#保留两位小数
data2=data1*100#扩大100倍,以获取小数点后面的数值
[i,j,k]=data2.shape
data3=np.array([[c],[d]])#data3为理论上我想得到的数组
# print(data1,end='\n')
# print('乘100后',end='\n')
print(data2,data2[1][0][1],end='\n')
print(data3,data3[1][0][1])
------------------------------------------运行结果--------------------------------
[[[ 0. 20. 40. 60. 80. 100.]]
[[ 0. 29. 29. 100. 57. 71.]]] 28.999999999999996
[[[ 0 20 40 60 80 100]]
[[ 0 29 29 100 57 71]]] 29
Process finished with exit code 0
可以看到使用我写的程序结果对照我期望得到的结果(下方的数组)有两个问题:
1:每个元素后面有个小数点
2:我取第二行第二个元素29的值,返回的确实28.999.。。。
求大神解答我哪里有问题?
本帖最后由 jinlovelive 于 2020-5-20 16:42 编辑
np的问题,先自己写个处理函数,处理完数据再np构建吧
- a = [round(((i-min(a))/(max(a)-min(a)))*100) for i in a]
复制代码
|
|