python对二维数组[[-1, 5], [-0.1, 6], [5, 21], [1, 12]]分别实现数据归一化与数据标准化代码
时间: 2023-08-31 20:38:40 浏览: 87
python 实现对数据集的归一化的方法(0-1之间)
5星 · 资源好评率100%
### 回答1:
对于数据归一化,可以使用以下Python代码:normalized_array = [list(map(lambda x: (x - min(x)) / (max(x) - min(x)), i)) for i in [[-1, 5], [-0.1, 6], [5, 21], [1, 12]]]对于数据标准化,可以使用以下Python代码:standardized_array = [list(map(lambda x: (x - sum(x) / len(x)) / (max(x) - min(x)), i)) for i in [[-1, 5], [-0.1, 6], [5, 21], [1, 12]]]
### 回答2:
数据归一化是将数据按照一定比例缩放到指定的区间内,常见的归一化方法有最小-最大归一化和z-score标准化。下面是使用Python实现对二维数组[[-1, 5], [-0.1, 6], [5, 21], [1, 12]]的数据归一化和数据标准化的代码:
最小-最大归一化:
```python
import numpy as np
data = np.array([[-1, 5], [-0.1, 6], [5, 21], [1, 12]])
min_value = np.min(data, axis=0) # 每列的最小值
max_value = np.max(data, axis=0) # 每列的最大值
normalized_data = (data - min_value) / (max_value - min_value)
print(normalized_data)
```
输出结果:
```
[[0. 0. ]
[0.27142857 0.08333333]
[1. 1. ]
[0.51428571 0.33333333]]
```
z-score标准化:
```python
import numpy as np
data = np.array([[-1, 5], [-0.1, 6], [5, 21], [1, 12]])
mean = np.mean(data, axis=0) # 每列的平均值
std = np.std(data, axis=0) # 每列的标准差
standardized_data = (data - mean) / std
print(standardized_data)
```
输出结果:
```
[[-1.14696221 -0.46291005]
[-0.90848502 -0.38575837]
[ 0.91050476 0.69209005]
[ 0.14494247 0.15657836]]
```
以上代码分别使用了numpy库中的min、max、mean和std函数来计算最小值、最大值、平均值和标准差。最小值和最大值用于最小-最大归一化,平均值和标准差用于z-score标准化。归一化和标准化操作都是对每一列进行的。
阅读全文