📜  Python – 矩阵自定义乘数

📅  最后修改于: 2022-05-13 01:54:50.259000             🧑  作者: Mango

Python – 矩阵自定义乘数

有时,在处理数据时,我们可能会遇到需要将矩阵的每一行与不同的乘数相乘的问题。这种应用在数据科学领域很重要。让我们讨论可以执行此任务的某些方式。

方法 #1:使用循环 + zip()
上述功能的组合可用于执行此任务。在此,我们遍历每一行并使用 zip() 执行乘法任务。

# Python3 code to demonstrate 
# Matrix Custom Multiplier
# using loop + zip()
  
# Initializing list
test_list1 = [[1, 3], [5, 6], [8, 9]]
test_list2 = [4, 3, 6]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Matrix Custom Multiplier
# using loop + zip()
res = []
for mul, sub in zip(test_list2, test_list1):
    temp = []
    for ele in sub:
        temp.append(mul * ele)
    res.append(temp)
  
# printing result 
print ("Matrix after custom multiplication : " + str(res))
输出 :
The original list 1 is : [[1, 3], [5, 6], [8, 9]]
The original list 2 is : [4, 3, 6]
Matrix after custom multiplication : [[4, 12], [15, 18], [48, 54]]

方法 #2:使用列表理解 + zip()
上述方法的组合可以用来解决这个问题。在这里,我们只是遍历列表并在一个衬垫中执行乘法任务。

# Python3 code to demonstrate 
# Matrix Custom Multiplier
# using list comprehension + zip()
  
# Initializing list
test_list1 = [[1, 3], [5, 6], [8, 9]]
test_list2 = [4, 3, 6]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Matrix Custom Multiplier
# using list comprehension + zip()
res =  [[mul * ele for ele in sub] for mul, sub in zip(test_list2, test_list1)]
  
# printing result 
print ("Matrix after custom multiplication : " + str(res))
输出 :
The original list 1 is : [[1, 3], [5, 6], [8, 9]]
The original list 2 is : [4, 3, 6]
Matrix after custom multiplication : [[4, 12], [15, 18], [48, 54]]