You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

遥感卫星影像光谱波段PCA降维遇维度错误求助

解决遥感数据PCA维度不匹配问题

sklearn的PCA要求输入是样本数×特征数的2维数组,你的遥感数据是3维(m行×n列的空间维度 + 103个光谱波段特征),直接传入会触发维度错误,解决步骤如下:

  • 展平空间维度:将(m, n, 103)的数组转换为(m*n, 103),每个空间像素作为独立样本,103个波段作为样本特征
  • 执行PCA降维:用展平后的2维数据拟合PCA并转换
  • 恢复空间结构:将降维后的结果重新转回(m, n, 10)的3维格式,匹配原数据的空间布局

完整代码示例:

from sklearn.decomposition import PCA

# 假设data是你的原始遥感数据,形状(m, n, 103)
test = feature_scaling(data)
m, n, _ = test.shape

# 展平空间维度
reshaped_data = test.reshape(-1, 103)

# 初始化PCA并执行降维
pca = PCA(n_components=10)
pca_components = pca.fit_transform(reshaped_data)

# 恢复空间形状
pca_result = pca_components.reshape(m, n, 10)

说明:

  • reshape(-1, 103)中的-1会让numpy自动计算m*n的总样本数,无需手动计算
  • 最终的pca_result保持了原数据的空间结构,每个位置对应10个主成分特征

内容的提问来源于stack exchange,提问作者mankjo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:55:28