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)
我正在寻找最简单的方法来获取 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)