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

Python中如何带条件遍历稀疏矩阵并按幂规则替换元素

Python实现0-1指示稀疏矩阵的5次幂元素替换

你不需要查找特殊的指数运算第三方包,根据矩阵的存储格式选对应实现即可,所有方案均满足替换规则:原元素为0时更新为$50=1$,原元素为1时更新为$51=5$。


方案1:原生Python实现(无第三方依赖)

如果你的矩阵以Python原生嵌套列表格式存储,不需要安装任何依赖,直接逐元素处理即可:

# 输入矩阵示例
input_mat = [
    [0, 1, 0],
    [0, 1, 1]
]

# 元素替换:直接值映射效率更高,也可写为 5**val 严格匹配幂运算逻辑
output_mat = []
for row in input_mat:
    output_mat.append([1 if v == 0 else 5 for v in row])

# 打印输出验证
for row in output_mat:
    print(' '.join(map(str, row)))

运行输出:

1 5 1
1 5 5

注:如果后续需要调整幂底数、扩展矩阵元素的取值范围,把列表推导式里的映射逻辑替换为5 ** v即可,逻辑完全通用。

方案2:NumPy稠密矩阵实现

如果你做实验用NumPy存储稠密数值矩阵,直接用向量化幂运算即可,执行效率远高于Python原生循环:

import numpy as np

input_mat = np.array([
    [0, 1, 0],
    [0, 1, 1]
])

output_mat = 5 ** input_mat
print(output_mat)

运行输出:

[[1 5 1]
 [1 5 5]]

方案3:SciPy稀疏矩阵实现(适配大规模稀疏存储场景)

如果你的矩阵本身以稀疏格式存储(比如CSR、COO格式,适合毕业论文里大规模数据集的实验,避免内存溢出),不需要转换为稠密矩阵,直接在稀疏格式上做运算即可:

import numpy as np
from scipy.sparse import csr_matrix

# 构造示例稀疏输入矩阵
input_sparse = csr_matrix(np.array([
    [0, 1, 0],
    [0, 1, 1]
]))

output_sparse = 5 ** input_sparse
# 转换为稠密格式打印验证
print(output_sparse.todense())

运行输出和要求完全一致,运算全程保持稀疏存储结构,内存占用远低于稠密矩阵方案。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 07:42:29