如何用Python计算二维矩阵每行元素的乘积?
解决Python二维矩阵每行元素乘积的问题
首先你给出的矩阵定义有语法错误——Python列表中的元素必须用逗号分隔,原代码里的[1 2 3]这种写法会触发语法报错,正确的矩阵定义应该是:
a = [[1, 2, 3], [4, 2, 1], [1, 3, 4]]
下面提供几种可行的解法来计算每行元素的乘积:
方法1:基础循环实现
适合理解底层逻辑,手动遍历每行元素计算乘积:
a = [[1, 2, 3], [4, 2, 1], [1, 3, 4]] row_products = [] for row in a: product = 1 for num in row: product *= num row_products.append(product) print(row_products) # 输出: [6, 8, 12]
方法2:列表推导式结合math.prod(Python 3.8+)
更简洁的写法,利用Python内置的math.prod直接计算可迭代对象的乘积:
import math a = [[1, 2, 3], [4, 2, 1], [1, 3, 4]] row_products = [math.prod(row) for row in a] print(row_products) # 输出: [6, 8, 12]
方法3:使用NumPy库(适合大型矩阵)
如果处理的是大规模矩阵,NumPy的向量化操作效率更高:
import numpy as np a = np.array([[1, 2, 3], [4, 2, 1], [1, 3, 4]]) row_products = np.prod(a, axis=1).tolist() print(row_products) # 输出: [6, 8, 12]
内容的提问来源于stack exchange,提问作者Ganesh Kulkarni
相关产品推荐
相关产品推荐

