Home >Backend Development >Python Tutorial >python method to normalize multidimensional array

python method to normalize multidimensional array

不言
不言Original
2018-04-09 11:38:109002browse

The content of this article is to share with you the method of normalizing multi-dimensional arrays in python. It has certain reference value. Friends in need can refer to it.

Today I encountered a problem that requires normalizing multi-dimensional arrays. , but a lot of information I checked on the Internet is a row or a column of a normalized array. There is relatively little information on how to normalize a multi-dimensional array. However, in tensorflow, multi-dimensional data is often needed to train neural networks. Therefore normalizing multi-dimensional arrays is very necessary.

After consulting a large amount of information, I found that preprocessing in the sklearn library can directly normalize multi-dimensional arrays.

1. Use the sklearn.preprocessing.scale() function to standardize the given data: the specific formula is (x - mean)/std. Its meaning is: subtract the mean of each column from the data in this column, and then divide by the standard deviation of the data in this column. The final data obtained are all near 0 and the variance is 1. Specific program examples are as follows:

from sklearn import preprocessing

data_normal = preprocessing.scale(data)#data是多维数据

2, Use the sklearn.preprocessing.StandardScaler class. This class can calculate the mean and variance of each column of data, and directly classify the original data according to the mean and variance. One transformation. A simple example is as follows:

from sklearn import preprocessing

#计算原始数据每行和每列的均值和方差,data是多维数据
scaler = preprocessing.StandardScaler().fit(data)
#得到每列的平均值,是一维数组
mean = scaler.mean_ 
#得到每列的标准差,是一维数组   
std = scaler.std_                                        
#标准化数据
data_nomal = scaler.transform(data)    
#可以直接使用训练集对测试集数据进行转换  
scaler.transform([[-1.,  1., 0.]])

3, sklearn.preprocessing.MinMaxScaler class scales the data to a specified range. Specific examples are as follows:

from sklearn import preprocessing

min_max_scaler = preprocessing.MinMaxScaler()
#标准化训练集数据
data_train_nomal = min_max_scaler.fit_transform(data_train)
 
#对测试集数据进行相同的归一化处理
data_test_minmax = min_max_scaler.transform(data_test)
#获取缩放因子属性,结果是一维数组
min_max_scaler.scale_                             
min_max_scaler.min_

4. Attached sklearn.preprocessing can also do regularization

(1) preprocessing.normalize( ) Perform regularization transformation on the data

data_normalized = preprocessing.normalize(data, norm='l2')

(2)preprocessing.Normalizer()fit the data first and then perform regularization transformation on the data

normalizer = preprocessing.Normalizer().fit(data)  #拟合原始数据,data是多维数组
normalizer.transform(data) #正则化


Related recommendations:

How to convert a python string into a two-dimensional array

python divide and conquer method to find local peak value of two-dimensional array_python



##

The above is the detailed content of python method to normalize multidimensional array. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn