np.c_拼接数组触发ValueError,求CSR矩阵与一维数组拼接方案
拼接CSR稀疏矩阵与NumPy数组的解决方案
因为SciPy稀疏矩阵和普通NumPy数组类型不兼容,直接拼接会报错,需先将NumPy数组转为稀疏矩阵格式,再用稀疏矩阵专用工具完成拼接,具体步骤如下:
导入依赖库:
import numpy as np from scipy.sparse import csr_matrix, hstack假设你的CSR矩阵为
sparse_mat,NumPy数组为numpy_arr,先将一维NumPy数组转为二维CSR稀疏矩阵(调整为列向量形式,匹配原稀疏矩阵的行数):# 将(1168,)的数组转为(1168,1)的CSR矩阵 sparse_arr = csr_matrix(numpy_arr.reshape(-1, 1))使用
hstack按列拼接两个稀疏矩阵:combined_mat = hstack([sparse_mat, sparse_arr])验证拼接结果(可选):
print(combined_mat.shape) # 输出应为 (1168, 287)
注意:如果需要按行拼接,替换
hstack为vstack即可,但需确保两个矩阵列数一致(此场景下不适用)。
内容的提问来源于stack exchange,提问作者Mayur
相关产品推荐
相关产品推荐

