python - 如何标准缩放 3D 矩阵?
问题描述
我正在研究信号分类问题,想先缩放数据集矩阵,但我的数据是 3D 格式(批次、长度、通道)。
我尝试使用 Scikit-learn Standard Scaler:
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
但我收到了这个错误信息:
找到暗淡为 3 的数组。StandardScaler 预期 <= 2
我认为一种解决方案是将矩阵按每个通道拆分为多个 2D 矩阵,分别缩放它们,然后以 3D 格式放回,但我想知道是否有更好的解决方案。
非常感谢。
解决方案
只需 3 行代码...
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train.reshape(-1, X_train.shape[-1])).reshape(X_train.shape)
X_test = scaler.transform(X_test.reshape(-1, X_test.shape[-1])).reshape(X_test.shape)
推荐阅读
- xml - Creating a generic XSLT document to transform any non-root Element with child elements
- wordpress - Gridsome + Wordpress 源插件 - 如何按月和年添加存档路线
- javascript - 如何防止用户提交远程api中已经存在的文本?
- multithreading - c++11线程睡眠/唤醒没有锁?
- python - Python使用xarray从NETCDF文件中提取多个纬度/经度
- vue.js - 模块解析失败:意外字符 '' (1:2) 您可能需要适当的加载程序来处理此文件类型
- python - 我正在尝试将 bibles.print("Gen", 1, 1) 输出保存到文本文件中。我该怎么做呢?
- width - 如何绘制线宽大于 1 像素的形状(椭圆、矩形、圆形等)
- python - 如何用乌龟创建一排星星
- python-3.x - 根据条件替换python numpy矩阵值,而不使用for循环