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

C#中如何实现Matrix动态添加新行或新列

动态可变维度矩阵实现方案

以下提供两种常用数据分析语言的落地方案,均不需要提前确定矩阵行列数,不存在的属性/行可自动创建:

Python 实现

推荐优先用pandas DataFrame实现,后续做矩阵运算、数据导出都更方便:

  • 第一步:初始化空矩阵
    直接创建空DataFrame即可:
    import pandas as pd
    # 初始化空矩阵,无行无列
    dynamic_matrix = pd.DataFrame()
    
  • 第二步:读取txt属性直接赋值
    逐行解析txt得到的属性名、属性值、所属行索引,直接赋值即可,不存在的行/属性列会自动创建,未赋值的位置默认填充NaN:
    # 示例:给行索引为sample_01的样本添加属性age,值为25
    dynamic_matrix.loc["sample_01", "age"] = 25
    # 示例:给行索引为sample_02的样本添加属性height,值为178
    dynamic_matrix.loc["sample_02", "height"] = 178
    
  • 如果你需要转成标准numpy矩阵,调用dynamic_matrix.to_numpy()即可。

如果不想依赖第三方库,可以用嵌套字典实现轻量版本:

from collections import defaultdict
# 定义双层defaultdict,未赋值的位置默认返回0,可自定义为None等其他值
dynamic_matrix = defaultdict(lambda: defaultdict(int))
# 直接赋值即可,行/列不存在自动创建
dynamic_matrix[0]["age"] = 25

R 实现

推荐用tibble实现,扩容兼容性比原生data.frame更好:

  • 初始化空矩阵:
    library(tibble)
    dynamic_matrix <- tibble()
    
  • 赋值自动扩容:
    新增属性列直接赋值,长度不足自动补NA;新增行用rbind()即可,缺失属性自动补NA:
    # 新增属性列age
    dynamic_matrix[["age"]] <- c(25, 30)
    # 新增行
    dynamic_matrix <- rbind(dynamic_matrix, list(age = 22, height = 175))
    

注意:如果你的属性稀疏度很高(大部分位置为空值),建议用稀疏矩阵结构存储,Python可使用scipy.sparse类,R可使用Matrix包的稀疏矩阵类,能大幅降低内存占用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:06:03