我有一个3D的numpy数组,代表时间序列数据,即[样本数量、时间步长、特征数]。
我想将每个特征缩放在-1到1之间。但是,每个特征应该根据数组第一维度所有样本的最大值和最小值进行缩放。例如,我的数组形状为:
multi_data.shape
(66, 5004, 2)
我尝试了以下方法:
data_min = multi_data.min(axis=1, keepdims=True)
data_max = multi_data.max(axis=1, keepdims=True)
multi_data = (2*(multi_data-data_min)/(data_max-data_min))-1
问题在于每个“批次”(我的数组的第一个维度)都是独立缩放的。我想做的是通过所有66个批次的最大和最小值来缩放每个特征(我有两个),然后基于这些最大和最小值对每个特征进行缩放,但我无法弄清楚如何实现。非常欢迎任何指针。