f = lambda dat: (dat- np.tile(np.mean(dat,0),(dat.shape[0],1,1)) )/np.tile(np.std(dat,0),(dat.shape[0],1,1))什么意思
时间: 2023-12-03 09:04:56 浏览: 127
python-np.set-printoptions()用法总结.pdf
这是一个基于 Numpy 的 Lambda 函数,实现的功能是对输入的数据进行标准化处理。具体来说,它的输入是一个三维的 Numpy 数组 dat,其中第一维表示样本的数量,第二维和第三维则表示每个样本的特征维度和时间步长。函数的返回值也是一个三维的 Numpy 数组,其每个元素都是标准化后的对应元素。
函数的实现过程如下:
1. `np.mean(dat,0)` 计算每个特征维度和时间步长的平均值,返回一个二维 Numpy 数组。
2. `np.tile(np.mean(dat,0),(dat.shape[0],1,1))` 将平均值沿着第一维(样本数量)复制 dat.shape[0] 份,沿着第二维和第三维不复制,得到一个三维 Numpy 数组,其每个元素都是平均值。
3. `(dat-np.tile(np.mean(dat,0),(dat.shape[0],1,1)))` 将原始数据减去平均值,得到每个元素与对应特征维度和时间步长的平均值的差。
4. `np.std(dat,0)` 计算每个特征维度和时间步长的标准差,返回一个二维 Numpy 数组。
5. `np.tile(np.std(dat,0),(dat.shape[0],1,1))` 将标准差沿着第一维复制 dat.shape[0] 份,沿着第二维和第三维不复制,得到一个三维 Numpy 数组,其每个元素都是标准差。
6. `(dat-np.tile(np.mean(dat,0),(dat.shape[0],1,1)))/np.tile(np.std(dat,0),(dat.shape[0],1,1))` 将步骤 3 和步骤 5 的结果相除,得到标准化后的数据。
阅读全文