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]]