将这段matlab语言转为python语言:res = xlsread('C:\Users\yudegui\Desktop\任务3\jiangwei.xlsx'); %% 划分训练集和测试集 temp = 1:1:449919; P_train = res(temp(1: 349920), 1: 11)'; T_train = res(temp(1: 349920), 12)'; M = size(P_train, 2); P_test = res(temp(349920: end), 1: 11)'; T_test = res(temp(349920: end), 12)'; N = size(P_test, 2); %% 数据归一化 [P_train, ps_input] = mapminmax(P_train, 0, 1); P_test = mapminmax('apply', P_test, ps_input); t_train = categorical(T_train)'; t_test = categorical(T_test )'; %% 数据平铺 % 将数据平铺成1维数据只是一种处理方式 % 也可以平铺成2维数据,以及3维数据,需要修改对应模型结构 % 但是应该始终和输入层数据结构保持一致 p_train = double(reshape(P_train, 11, 1, 1, M)); p_test = double(reshape(P_test , 11, 1, 1, N));
时间: 2023-12-22 12:05:01 浏览: 260
下面是将上述 Matlab 代码转换为 Python 代码的结果:
```python
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
import numpy as np
# 读取Excel文件
res = pd.read_excel(r'C:\Users\yudegui\Desktop\任务3\jiangwei.xlsx')
# 划分训练集和测试集
temp = np.arange(1, 449920)
P_train = res.iloc[temp[:349920], :11].T.values
T_train = res.iloc[temp[:349920], 11].T.values
M = P_train.shape[1]
P_test = res.iloc[temp[349920:], :11].T.values
T_test = res.iloc[temp[349920:], 11].T.values
N = P_test.shape[1]
# 数据归一化
scaler = MinMaxScaler(feature_range=(0, 1))
P_train_scaled = scaler.fit_transform(P_train.T).T
P_test_scaled = scaler.transform(P_test.T).T
ps_input = scaler.get_params()
t_train = pd.get_dummies(T_train).T.values
t_test = pd.get_dummies(T_test).T.values
# 数据平铺
p_train = P_train_scaled.reshape(11, 1, 1, M).astype(float)
p_test = P_test_scaled.reshape(11, 1, 1, N).astype(float)
```
请确保在运行此代码之前已导入所需的库,并且确保 Excel 文件的路径是正确的。此外,我还假设 Excel 文件中的数据已经按照你的要求进行了排列。在 Python 中,我们使用 pandas 库来读取 Excel 文件,并且使用 sklearn 库中的 MinMaxScaler 类来进行数据归一化。最后,使用 numpy 库来进行数组的重塑操作。
阅读全文