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

如何高效构建对应指定上对角线的numpy/pandas矩阵?

高效构建目标DataFrame的向量化方案
  • 首先明确矩阵维度:数组systems长度为11,因此目标矩阵h是12×12的方阵(偏移1的上对角线元素数量等于矩阵行数-1)
  • 直接用Numpy的向量化索引赋值替代循环操作,效率提升显著,且天然支持64位整数类型:
import numpy as np
import pandas as pd

systems = np.array([1, 3, 1, 7, 1, 15, 1, 7, 1, 3, 1], dtype=np.int8)
# 确定矩阵尺寸,可直接适配任意长度的systems
mat_size = len(systems) + 1
# 初始化64位整数类型的全零矩阵
h_mat = np.zeros((mat_size, mat_size), dtype=np.int64)
# 向量化赋值偏移1的上对角线
row_indices = np.arange(len(systems))
col_indices = np.arange(1, mat_size)
h_mat[row_indices, col_indices] = systems
# 转换为DataFrame
h = pd.DataFrame(h_mat)
  • 验证结果:执行np.diagonal(h, 1)会完全匹配systems数组
  • 优势:避免循环的逐元素操作,利用Numpy底层优化大幅提升速度,通过指定dtype=np.int64直接满足后续64位整数处理需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:43:13