Python输入2个矩阵,第一个矩阵的比第二个小,然后如何判断第一个矩阵是否是第二个矩阵的子矩阵呢?思路是什么
假设两个矩阵分别是m1*n1和m2*n2大小。
遍历第二个矩阵,遍历范围range(0, m2-m1+1), range(0, n2-n1+1),对于第二个矩阵中的每个元素,将其作为子矩阵的左上角的元素进行考虑,然后检查其右下方的m1行n1列的子矩阵(称为二子矩阵)是否与第一个矩阵相同。如果要求矩阵元素顺序一样,那就逐个位置判断,如果不要求顺序一样,就取出这个二子矩阵的元素放集合,通过集合的方式与第一个矩阵的元素集合比较。
除了上述介绍的方法之外,另一种常用的方法是将属性缩放到一个指定的最大和最小值(通常是1-0)之间,这可以通过preprocessing.MinMaxScaler类实现。
使用这种方法的目的包括:
1、对于方差非常小的属性可以增强其稳定性。
2、维持稀疏矩阵中为0的条目。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
当然,在构造类对象的时候也可以直接指定最大最小值的范围:feature_range=(min, max),此时应用的公式变为:
X_std=(X-X.min(axis=0))/(X.max(axis=0)-X.min(axis=0))
X_scaled=X_std/(max-min)+min