import numpy as np
l1 = [1, 3]
l2 = [np.array([3, 3]), np.array([1, 1])]
# Convert the list of weights to a NumPy array
weights = np.array(l1)
# Convert the list of arrays to a NumPy array
arrays = np.array(l2)
# Calculate the weighted average
weighted_avg = np.average(arrays, axis=0, weights=weights)
print(weighted_avg)
import numpy as np
def weighted_average(arr_list, weights):
# Check if the input arrays and weights have the same length
if len(arr_list) != len(weights):
raise ValueError("The length of arrays and weights must be the same.")
# Convert the list of arrays into a NumPy array
arr_list = np.array(arr_list)
# Calculate the weighted sum
weighted_sum = np.sum(arr_list * weights[:, np.newaxis], axis=0)
# Calculate the total weight
total_weight = np.sum(weights)
# Calculate the weighted average
weighted_avg = weighted_sum / total_weight
return weighted_avg
型 使用示例:
# List of NumPy arrays
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])
array3 = np.array([7, 8, 9])
# Corresponding weights
weights = np.array([0.3, 0.5, 0.2])
# Calculate the weighted average
result = weighted_average([array1, array2, array3], weights)
print(result) # Output: [3.7 4.7 5.3]
1条答案
按热度按时间pepwfjgg1#
编辑:
我之前提供的方法是一种简单有效的方法来计算NumPy数组列表的加权平均值。但是,如果您喜欢更简洁的方式来实现相同的结果,则可以使用NumPy的average函数和weights参数。下面是如何做到这一点:
字符串
输出量:
型
带有weights参数的np.average函数允许您直接计算加权平均值,而无需分别显式计算加权和和总权重。它提供了一种简洁有效的方法来实现与前面的方法相同的结果。
要计算NumPy数组列表的加权平均值,您需要数组及其相应的权重。以下是您的操作方法:
型
使用示例:
型
在该示例中,具有权重[0.3,0.5,0.2]的阵列[1,2,3]、[4,5,6]和[7,8,9]的加权平均值是[3.7,4.7,5.3]。