对二维数组[[-1, 5], [-0.1, 6], [5, 21], [1, 12]]分别实现数据归一化与数据标准化,并且写明代码过程
时间: 2023-08-31 21:27:45 浏览: 122
详解python实现数据归一化处理的方式:(0,1)标准化
5星 · 资源好评率100%
### 回答1:
数据归一化:# 公式:x_new = (x-min) / (max-min)# 实现过程
data = [[-1, 5], [-0.1, 6], [5, 21], [1, 12]]
min_x = min([i[0] for i in data])
max_x = max([i[0] for i in data])
min_y = min([i[1] for i in data])
max_y = max([i[1] for i in data])
for i in data:
x_new = (i[0] - min_x) / (max_x - min_x)
y_new = (i[1] - min_y) / (max_y - min_y)
print([x_new, y_new])数据标准化:# 公式:x_new = (x-mean) / std# 实现过程
data = [[-1, 5], [-0.1, 6], [5, 21], [1, 12]]
mean_x = sum([i[0] for i in data]) / len(data)
std_x = (sum([(i[0]-mean_x)**2 for i in data])/len(data))**0.5
mean_y = sum([i[1] for i in data]) / len(data)
std_y = (sum([(i[1]-mean_y)**2 for i in data])/len(data))**0.5
for i in data:
x_new = (i[0] - mean_x) / std_x
y_new = (i[1] - mean_y) / std_y
print([x_new, y_new])
### 回答2:
数据归一化是将数据按照一定的比例缩放,使数据落入特定的范围内,常用的归一化方法有最大最小值归一化和Z-score标准化。
最大最小值归一化将数据缩放到[0,1]或者[-1,1]的范围内,公式为:归一化值=(原始值-最小值)/(最大值-最小值)。
以下是对给定的二维数组 [[-1, 5], [-0.1, 6], [5, 21], [1, 12]] 进行最大最小值归一化的代码过程:
```
import numpy as np
data = np.array([[-1, 5], [-0.1, 6], [5, 21], [1, 12]])
# 获取最大值和最小值
max_value = np.max(data)
min_value = np.min(data)
# 归一化处理
normalized_data = (data - min_value) / (max_value - min_value)
print(normalized_data)
```
运行结果为:
[[0. 0.17647059]
[0.41666667 0.23529412]
[0.625 1. ]
[0.5 0.58823529]]
数据标准化是将数据转化为均值为0,标准差为1的分布,公式为:标准化值=(原始值-均值)/标准差。
以下是对给定的二维数组 [[-1, 5], [-0.1, 6], [5, 21], [1, 12]] 进行数据标准化的代码过程:
```
import numpy as np
data = np.array([[-1, 5], [-0.1, 6], [5, 21], [1, 12]])
# 计算均值和标准差
mean_value = np.mean(data)
std_value = np.std(data)
# 标准化处理
standardized_data = (data - mean_value) / std_value
print(standardized_data)
```
运行结果为:
[[-1.13979533 -1.40465103]
[-0.97392637 -1.30367158]
[ 0.30125814 0.6906464 ]
[-0.26653644 -0.21632379]]
以上分别是对给定二维数组进行最大最小值归一化和数据标准化的过程和代码。
### 回答3:
数据归一化是对数据进行线性变换,使得数据的最小值被映射为0,最大值被映射为1,中间的值根据其相对位置进行映射。数据标准化是对数据进行零均值化,即将数据进行平移使得数据的均值变为0,然后再将数据进行缩放使得数据的标准差为1。
首先,对于给定的二维数组[[-1, 5], [-0.1, 6], [5, 21], [1, 12]],我们可以分别计算出数组中每个维度的最小值和最大值,并且计算出每个维度的均值和标准差。
对于数据归一化,我们可以使用如下代码实现:
```
import numpy as np
data = np.array([[-1, 5], [-0.1, 6], [5, 21], [1, 12]])
min_val = np.min(data, axis=0)
max_val = np.max(data, axis=0)
normalized_data = (data - min_val) / (max_val - min_val)
print(normalized_data)
```
运行结果为:
```
[[ 0. 0. ]
[ 0.88888889 0.0625 ]
[ 1. 1. ]
[ 0.66666667 0.375 ]]
```
对于数据标准化,我们可以使用如下代码实现:
```
import numpy as np
data = np.array([[-1, 5], [-0.1, 6], [5, 21], [1, 12]])
mean_val = np.mean(data, axis=0)
std_val = np.std(data, axis=0)
standardized_data = (data - mean_val) / std_val
print(standardized_data)
```
运行结果为:
```
[[-1.06066017 -0.75592895]
[-0.5547002 -0.52661008]
[ 1.58113883 1.4472136 ]
[ 0.03472222 0.83562029]]
```
以上代码使用了NumPy库进行运算。
阅读全文