Python arrays/lists: 将总计转换为相对值

Python arrays/lists: convert total to relative values

我正在寻找最简单的方法来获取 arr_A 的总值列为 arr_B 中的相对值。

我想避免使用像 value[i]/sum(arr_A)

这样的循环

注意:arr_A是动态变化的,这只是一个简单的例子

有没有简单的内置函数?

arr_A = [2, 4, 2, 2]

#do magic

arr_B = [0.2, 0.4, 0.2, 0.2]

您可以尝试使用内置函数 map 和 lambda 函数

arr_B = list(map(lambda x: x/sum(arr_A), arr_A))

纯Python:

s = sum(arr_A)
arr_B = [x/s for x in arr_B]

但是对于数值运算,numpy 库是你的朋友。在 numpy 中,这可以写成:

arr_B = np.array(arr_A) / np.sum(arr_A)