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

如何基于另一矩阵Q的行列乘积条件给Python矩阵M赋值?

Python矩阵M生成实现方案

根据你描述的规则,分两种常见场景给出实现代码:

场景1:直接判断Q矩阵i行j列的元素本身大于0.5

如果需求是单个元素Q[i][j]的值大于0.5就赋值1,直接用嵌套列表推导式即可:

# 接你已有的代码
M = [[1 if Q[i][j] > 0.5 else 0 for j in range(x)] for i in range(y)]

运行后生成的M结果为:

[[0, 0, 1],
 [0, 1, 0],
 [0, 0, 0]]

场景2:判断Q第i行与第j列的点积(乘积求和)大于0.5

如果需求是你注释里提到的行与列的乘积总和判断,实现如下:

# 普通Python实现
M = []
for i in range(y):
    row = []
    for j in range(x):
        # 计算第i行和第j列对应元素相乘后的求和结果
        dot_product = sum(Q[i][k] * Q[k][j] for k in range(x))
        row.append(1 if dot_product > 0.5 else 0)
    M.append(row)

也可以写成嵌套列表推导式的形式:

M = [[1 if sum(Q[i][k] * Q[k][j] for k in range(x)) > 0.5 else 0 for j in range(x)] for i in range(y)]

更简便的Numpy实现

如果可以使用第三方库,用numpy代码会更简洁:

import numpy as np
Q_np = np.array(Q)
# 对应场景1的实现
M = (Q_np > 0.5).astype(int).tolist()
# 对应场景2的实现
M = ((Q_np @ Q_np) > 0.5).astype(int).tolist()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:06:04