使用numpy合并矩阵时如何保留原有index?
合并带index矩阵的解决方案
方案1:使用pandas合并(推荐)
numpy原生ndarray没有内置index属性,你提到的带index的矩阵本质是pandas的Series或DataFrame结构,用pandas自带的合并方法可以自动保留、对齐index。
import pandas as pd # 按列合并两个带index的序列/数据框,自动对齐index Final_Score = pd.concat([NIM, total_score.rename("Total Score")], axis=1)
- 如果后续需要转成numpy数组,可以单独提取index和数值部分:
# 提取原有index saved_index = Final_Score.index.to_numpy() # 提取数值矩阵 score_array = Final_Score.to_numpy()
方案2:纯numpy手动保留index
如果一定要用numpy的hstack方法,可以把index作为单独一列合并到最终矩阵中:
import numpy as np # 提取index并转为100×1的列向量 index_col = NIM.index.to_numpy().reshape(-1, 1) # 合并时加入index列,最终矩阵为100×3结构:第一列为index,后两列为对应数据 Final_Score = np.hstack((index_col, NIM.to_numpy(), np.atleast_2d(total_score).T))
- 注意:使用该方法前需要先确认两个原始矩阵的index顺序完全一致,否则会出现数据和index不匹配的问题。
内容的提问来源于stack exchange,提问作者Justin Habel Kiswanto
相关产品推荐
相关产品推荐

