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

如何实现np.array兼容np.matrix的字符串快速初始化二维数组功能?

解决方案

方案1:快速过渡写法(一行代码适配)

直接复用np.matrix的字符串解析能力后转np.array,临时使用不需要额外写代码:

import numpy as np
arr = np.array(np.matrix("1, 1+1j, 0; 0, 1j, 0; 0, 0, 1"))

输出结果:

array([[1.+0.j, 1.+1.j, 0.+0.j],
       [0.+0.j, 0.+1.j, 0.+0.j],
       [0.+0.j, 0.+0.j, 1.+0.j]])

如果介意np.matrix的弃用警告,可以加一行过滤警告的代码,或者使用下面的纯自定义实现方案。

方案2:自定义封装函数(无弃用风险)

可以写一个轻量工具函数,完全不依赖np.matrix实现相同的字符串初始化逻辑,你可以把这段代码放到你的Python交互式环境启动脚本里,平时当计算器用直接调用即可:

import numpy as np
# 可选:用ast.literal_eval替代eval更安全,避免恶意代码执行风险,自己日常使用可忽略
import ast

def arr(s: str, dtype=None):
    rows = [row.strip() for row in s.split(';') if row.strip()]
    data = []
    for row in rows:
        elems = [ast.literal_eval(elem.strip()) for elem in row.split(',') if elem.strip()]
        data.append(elems)
    return np.array(data, dtype=dtype)

调用示例:

arr("1, 1+1j, 0; 0, 1j, 0; 0, 0, 1")

输出和上述方案一致,支持整数、浮点数、复数等各类数值写法,和原np.matrix的字符串解析体验基本对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:54:04