Python数据处理_pandas读取csv文件_numpy进行归一化处理

请执行以下命令下载样本数据

数据为CSV表格有8列,其中abstime列为时间列,其余列为特征列

!wget http://82.156.209.173/s/dHCnaH32rtZdxcs/download
!mv download sample_data_A100159.csv

1. 对给出的样本文件中的所有特征列做normalization,映射至(0-255)的区间,从abstime的第一行开始每隔200条取一次整行数据,并将最终取出的数据并以PNG格式的图片输出。

提示:输出图片用PIL库
可参考 https://blog.csdn.net/qq_42967398/article/details/95388563

对于样本 X N × K X_{N\times K} XN×K,共 N N N个样本, K K K个特征。sample_data_A100159.csv的shape是(4905, 8)。所以有 N = 4905 N=4905 N=4905 K = 8 K=8 K=8
1)归一化是按照每个特征进行归一化。对于第 k k k个特征,将数据归一化到[0,1]: X = X − X m i n X m a x − X m i n X=\frac{X-X_{min}}{X_{max}-X_{min}} X=XmaxXminXXmin2)对于第 k k k个特征,将数据归一化到[0,255],令 l o w = 0 , h i g h = 255 low=0,high=255 low=0,high=255 X = l o w + X − X m i n X m a x − X m i n ∗ ( h i g h − l o w ) X=low+\frac{X-X_{min}}{X_{max}-X_{min}}*(high-low) X=low+XmaxXminXXmin(highlow)3)若第 k k k个特征的值全部相同,那么 X m a x − X m i n = 0 X_{max}-X_{min}=0 XmaxXmin=0,分母为0,计算结果溢出,程序报错。令分母加一个小数(1e-5)。
4)numpy便于对N维数组对象进行整体的操作。比如有 K K K列特征,不用循环 K K K次进行归一化操作。数据是二维的,在第一维度上进行最大值最小值计算。第一维度是样本数量。 d a t a . m i n ( a x i s = 0 ) data.min(axis=0) data.min(axis=0)以及 d a t a . m a x ( a x i s = 0 ) data.max(axis=0) data.max(axis=0)两个操作。

import pandas as pd 
import numpy as np 
import random 
from PIL import Image 
#################################
#  CODING HERE
sample_data = pd.read_csv("sample_data_A100159.csv",header = 0)
data = np.array(sample_data)
print(data.size) #39240
print(data.shape) #(4905, 8)
print(data.ndim) #2
print(data.dtype) #float64
#归一化
x_nor = (data - data.min(axis=0))/(data.max(axis=0)-data.min(axis=0)+1e-5)* (255.0-0.0)+0.0
#(某个元素-它这列最小的数)/(它这列最大的数-它这列最小的数)
print(x_nor.shape)

data = pd.DataFrame(x_nor)
data.to_csv("normalization_A100159.csv",index=False,header=False)
abstime=data[:][6]
print(data[:][6])
ans = []
for i in range(0 , 4094 , 200): 
    ans.append(abstime[i])
print(len(ans))
#################################
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值