Python 当数据看起来像三维阵列时,如何平衡数据?
我得到了一个大小为Python 当数据看起来像三维阵列时,如何平衡数据?,python,arrays,numpy,Python,Arrays,Numpy,我得到了一个大小为(3275412,50,22)的numpy_数组,它代表了为LSTM目的而重塑的数据,我得到了一个形状为(3275412,)的目标向量 我想平衡我的数据,使目标0和1的数据数量大致相同。 我准备数据的方式使我无法在重塑之前进行此平衡操作 首先,我想应用make_函数(详情请参见),但无法将其应用于二维阵列(出现错误) 我的问题是:对于3D阵列,最有效的方法是什么 我的想法:我想先通过“连接”第二维度和第三维度将我的三维数组“展平”为二维数组(但不知道怎么做,请告诉我??),然后
(3275412,50,22)
的numpy_数组,它代表了为LSTM目的而重塑的数据,我得到了一个形状为(3275412,)
的目标向量
我想平衡我的数据,使目标0
和1
的数据数量大致相同。
我准备数据的方式使我无法在重塑之前进行此平衡操作
首先,我想应用make_
函数(详情请参见),但无法将其应用于二维阵列(出现错误)
我的问题是:对于3D阵列,最有效的方法是什么
我的想法:我想先通过“连接”第二维度和第三维度将我的三维数组“展平”为二维数组(但不知道怎么做,请告诉我??),然后应用make_unbalance
,然后将结果重塑为三维数组(同样,我也不知道怎么做)。这似乎有点棘手,但是
因此,任何帮助都将不胜感激,无论是对于其他不平衡方法,还是关于重塑3D->2D的帮助,或者反之亦然,您可以使用
np。对于未知尺寸,使用-1
重塑
data2d = data3d.reshape(data3d.shape[0], -1)
将为您提供一个二维形状数组(n个样本,n个特征)
第二维度和第三维度合并
data2d_new, y_new = make_imbalance(data2d, y)
调用make_disbalance
后,您将得到一个具有形状(n_samples_new,n_features)
的2d数组,其中行数“未知”,但您知道原始3d数组的其他两个“feature”维度,因此
data3d_new = data2d.reshape(-1, data3d.shape[1], data3d.shape[2])
将返回平衡的3d数据集