基于Python实现数据归一化

最近想对Excel表格的数据进行归一化,但是用Excel或者spss感觉比较麻烦,所以写了一个Python脚本,实现更加方便。

数据导入:

#导入数据
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# df = pd.read_excel('D:\\零时文件\\data.csv',usecols=[0,1,2,3,4,5,6,7,8,9,10])
df = pd.read_excel('D:\\Datasets\\geoDetector\\采样结果\\最终版本5000m.xlsx')

最值归一化:

# 最值归一化
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler() 
scaler.fit(df)
scaled_features = scaler.transform(df)
df_MinMax = pd.DataFrame(data=scaled_features, columns=["X1","X2","X3","X4","X5","X6","X7","X8","X9","X10","X11","X12","X13","X14","X15","X16","X17","X18","X19","X20","X21","X22","X23","X24","X25","X26","X27"])

保存数据:

df_MinMax.to_csv('D:\\零时文件\\最终版本5000m最值归一化.csv')#存储到CSV中

均值归一化:

from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler() # 均值归一化
sc_X = sc_X.fit_transform(df)
sc_X = pd.DataFrame(data=sc_X, columns=["X1","X2","X3","X4","X5","X6","X7","X8","X9","X10","X11","X12","X13","X14","X15","X16","X17","X18","X19","X20","X21","X22","X23","X24","X25","X26","X27"])

保存数据:

sc_X.to_csv('D:\\零时文件\\最终版本5000m均值归一化.csv')#存储到CSV中
### 实现点云数据归一化 对于点云数据而言,归一化的目的是将所有的点投影到一个特定范围内,通常这个范围是单位立方体(边长为1)。这有助于提高后续处理步骤中的数值稳定性以及算法效率。下面给出了一种基于最小最大缩放法(min-max scaling)来实现点云数据归一化Python代码示例: ```python import numpy as np def normalize_point_cloud(points): """ 对输入的三维点云数据执行min-max标准化. 参数: points (numpy.ndarray): 输入的原始点云数据, 形状应为(N, 3), N表示点的数量 返回: normalized_points (numpy.ndarray): 经过归一化之后的新点集 """ min_vals = np.min(points, axis=0) # 计算每维坐标的最小值 max_vals = np.max(points, axis=0) # 计算每维坐标的最大值 ranges = max_vals - min_vals # 各维度坐标的变化范围 shifted_points = points - min_vals # 将所有点沿各轴平移到原点附近 scaled_points = shifted_points / ranges # 缩放到[0, 1]区间内 return scaled_points # 输出归一化后的点云数据 ``` 此函数接受一个形状为 `(N, 3)` 的 NumPy 数组作为参数 `points` ,其中每一行代表空间中的单个点位置;返回的结果同样是具有相同结构但是经过了归一化操作的数据。 为了确保点云能够被正确地映射至 `[0, 1]^3` 这样的标准区域内,上述过程先通过减去各自维度下的最小值得到了相对于新零点的位置变化量(shifted),再除以对应的最大跨度(ranges)从而完成最终的比例转换(scaled)[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jackson的生态模型

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值