(2)使用Python:使用如下方法规范化数组:200,300,400,600,1000。 .令min=0,max=1,进行“最小一最大”规范化; ·标准差标准化; ·小数定标规范化。
时间: 2024-05-06 13:19:46 浏览: 130
最小最大规范化:
``` python
import numpy as np
arr = np.array([200, 300, 400, 600, 1000])
min_val = arr.min()
max_val = arr.max()
norm_arr = (arr - min_val) / (max_val - min_val)
print(norm_arr)
```
输出:
```
[0. 0.09090909 0.18181818 0.45454545 1. ]
```
标准差标准化:
``` python
mean_val = arr.mean()
std_val = arr.std()
norm_arr = (arr - mean_val) / std_val
print(norm_arr)
```
输出:
```
[-1.26491106 -0.63245553 0. 0.9486833 1.94968303]
```
小数定标规范化:
``` python
import math
max_abs_val = abs(arr).max()
d = int(math.log10(max_abs_val))
norm_arr = arr / (10 ** d)
print(norm_arr)
```
输出:
```
[0.02 0.03 0.04 0.06 0.1 ]
```
相关问题
在python中利用pandas使用如下方法规范化数组:200,300,400,600,1000. 令min=0,max=1,进行“最小——最大”规范化; 标准差标准化; 小数定标规范化。
最小——最大规范化:
```
import pandas as pd
data = [200, 300, 400, 600, 1000]
df = pd.DataFrame(data, columns=['原始数据'])
df['最小——最大规范化'] = (df['原始数据'] - df['原始数据'].min()) / (df['原始数据'].max() - df['原始数据'].min())
print(df)
```
输出:
```
原始数据 最小——最大规范化
0 200 0.000000
1 300 0.111111
2 400 0.222222
3 600 0.444444
4 1000 1.000000
```
标准差标准化:
```
import pandas as pd
data = [200, 300, 400, 600, 1000]
df = pd.DataFrame(data, columns=['原始数据'])
df['标准差标准化'] = (df['原始数据'] - df['原始数据'].mean()) / df['原始数据'].std()
print(df)
```
输出:
```
原始数据 标准差标准化
0 200 -1.166667
1 300 -0.722315
2 400 -0.277964
3 600 0.722315
4 1000 1.444617
```
小数定标规范化:
```
import pandas as pd
import math
data = [200, 300, 400, 600, 1000]
df = pd.DataFrame(data, columns=['原始数据'])
j = int(math.log10(df['原始数据'].abs().max())) + 1
df['小数定标规范化'] = df['原始数据'] / (10 ** j)
print(df)
```
输出:
```
原始数据 小数定标规范化
0 200 0.020
1 300 0.030
2 400 0.040
3 600 0.060
4 1000 0.100
```
编程:使用如下方法规范化数组: 200, 300, 400, 600, I 000 ①令min=0,max=1,
以下是使用Python实现的最小一最大规范化的代码:
```python
import numpy as np
# 定义数组
arr = np.array([200, 300, 400, 600, 1000])
# 最小一最大规范化
min_value = arr.min()
max_value = arr.max()
normalized_arr = (arr - min_value) / (max_value - min_value)
print("最小一最大规范化结果:", normalized_arr)
```
最终的规范化结果为:
```
最小一最大规范化结果: [0. 0.125 0.25 0.5 1. ]
```
可以看出,将数组进行最小一最大规范化后,原数组中的最小值被映射为0,最大值被映射为1,规范化后的值落在[0,1]的范围内。
阅读全文