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

Python中自定义格式打印矩阵(含numpy数组与列表场景)

矩阵自定义格式输出解决方案

针对嵌套列表和numpy数组两种形式的矩阵,我们可以通过自定义格式化函数实现需求:

核心思路

  1. 将每个数字格式化为指定精度的科学计数法字符串,把e替换为*^
  2. 用{}包裹每一行的元素
  3. 最后用外层{}包裹所有行

代码实现

通用格式化函数

def format_matrix(matrix):
    # 格式化单个数字:转8位小数科学计数法,替换e为*^
    def format_num(num):
        return "{:.8e}".format(num).replace('e', '*^')
    
    # 处理每一行,生成{元素1, 元素2,...}格式的字符串
    formatted_rows = []
    for row in matrix:
        elements = [format_num(num) for num in row]
        formatted_rows.append(f"{{{', '.join(elements)}}}")
    
    # 拼接所有行,外层再套大括号
    return f"{{{', '.join(formatted_rows)}}}"

测试嵌套列表

# 嵌套列表示例
a_list = [[1/10000009, 2, 3], [3, 4/3000897, 5]]
print(format_matrix(a_list))
# 输出:{{9.99999100*^-08, 2.00000000*^+00, 3.00000000*^+00}, {3.00000000*^+00, 1.33293479*^-06, 5.00000000*^+00}}

测试numpy数组

只需将numpy数组转为嵌套列表后传入函数:

import numpy as np

# numpy数组示例
a_np = np.array([[1/10000009, 2, 3], [3, 4/3000897, 5]])
print(format_matrix(a_np.tolist()))
# 输出同上

说明

  • 函数支持任意行数和列数的二维矩阵结构
  • 精度可通过修改"{:.8e}"中的数字调整,比如改为"{:.6e}"会保留6位小数
  • 目标输出中的1.33293479^*-06应为笔误,上述代码会输出正确的1.33293479*^-06

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 09:30:28