当前位置: 首页 > 面试题库 >

如何对3D矩阵进行标准缩放?

巫马星雨
2023-03-14
问题内容

我正在研究信号分类问题,想先缩放数据集矩阵,但是我的数据是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格式,但我想知道是否有更好的解决方案。
非常感谢你。


问题答案:

您必须为每个通道安装并存储缩放器

from sklearn.preprocessing import StandardScaler

scalers = {}
for i in range(X_train.shape[1]):
    scalers[i] = StandardScaler()
    X_train[:, i, :] = scalers[i].fit_transform(X_train[:, i, :])

for i in range(X_test.shape[1]):
    X_test[:, i, :] = scalers[i].transform(X_test[:, i, :])


 类似资料:
  • 本文向大家介绍python如何进行矩阵运算,包括了python如何进行矩阵运算的使用技巧和注意事项,需要的朋友参考一下 python进行矩阵运算的方法: 1、矩阵相乘 2、矩阵对应元素相乘 multiply()函数:数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致 3、矩阵点乘 4、矩阵求逆 5、矩阵转置 6、计算每一列、行的和 内容扩展: numpy矩阵运算 (1) 矩阵点乘:m=mult

  • 我有两个列表,每个列表中有两个矩阵。。是否有一种方法可以对它们进行矩阵计算,即相加,其中matrix1中的蓝色矩阵与matrix2中的蓝色矩阵相加,matrix1中的红色矩阵与matrix2中的红色矩阵相加。我能想到的唯一方法是在循环中进行计算 请注意,我将有大约10个,以及不止一组(即蓝色、红色、绿色、紫色)

  • 当我试图在页面的内容流中添加文本时,我很难理解PDFBox的行为。我使用的是一个样本扫描PDF,它只是一个叠加在页面上的光栅图像。我的PDF内部工作知识有些基础,所以我可能走错了方向。 http://solutions.weblite.ca/pdfocrx/scansmpl.pdf 我将PDFBox 2.0.11与sbt一起使用: 我的第一步是创建一个内容流,并在PDF上写“你好世界”,我通过以下

  • 使用JCUDA对复数进行运算的最佳方法是什么?我应该使用cuComplex格式还是有其他的解决方案(像一个数组,实部和虚部一个接着一个走)?我非常感谢使用这种类型的计算的java代码示例。 由于我的目的是用GPU求解复杂的线性方程组,所以我不想只附上jCuda。用GPU进行这样的计算有哪些可供选择的方式?

  • 问题内容: 我正在使用阴影中的形状生成使用安装在移动平台上的相机拍摄的图像的数字地形模型(DTM)。用Python编写的算法似乎运行得很好,但是输出是倾斜的并且有点球形,所以我怀疑我需要从DTM中消除透视失真和桶形。 如果有人对此感兴趣,可以在这里获得数据。 摄像机以41度倾斜安装,并具有以下摄像机和失真矩阵: 如何应用透视变换并从此矩阵中消除桶形失真以获得平坦的DTM? 我已经尝试过使用Open

  • 我在matlab中有一大堆2D矩阵(假设它们组成一个3D矩阵,其中第三维是时间),我试图从图像数据中制作视频。 我知道我可以使用surf()使用其中一个2D矩阵绘制曲面图,但我不确定调用哪个命令来获取所有2D矩阵并将其转换为曲面图的视频。 有人能帮忙吗?