Python数组/列表:将合计值转换为相对值
我正在寻找一种最简单的方法来获得arr_A的总值,并将其列为arr_B中的相对值 我希望避免使用像Python数组/列表:将合计值转换为相对值,python,arrays,list,converters,Python,Arrays,List,Converters,我正在寻找一种最简单的方法来获得arr_A的总值,并将其列为arr_B中的相对值 我希望避免使用像value[I]/sum(arr\u 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)) 您
value[I]/sum(arr\u 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))
您可以尝试将内置函数
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)
纯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\u B
只是应该包含结果。是的,对不起,我的意思是arr\u A正在更改->更改它直到,这是什么意思?您意识到,如果它发生更改,您还必须更新arr_B
?这一小块代码嵌套在我代码的深处。arr_A不存在,它是以编程方式生成的,就像一千次一样,每次看起来都不一样。对于每一个arr_A,我必须生成一个具有相对值的arr_B,你说的“动态变化”是什么意思?看起来好像arr\u B
只是应该包含结果。是的,对不起,我的意思是arr\u A正在更改->更改它直到,这是什么意思?您意识到,如果它发生更改,您还必须更新arr_B
?这一小块代码嵌套在我代码的深处。arr_A不存在,它是以编程方式生成的,就像一千次一样,每次看起来都不一样。对于每个arr_A,我必须生成一个具有相对值的arr_B,这将为每个元素求和arr_A
。不太efficient@Tomerikoo当考虑效率时,可以将sum(arr_A)
的值分配给变量。但对于5个大小的列表,它在任何现代计算机上的运行时间差异都不到1毫秒。普遍的观点是,理解应该优先于功能性习惯用法,如过滤器和映射。更短、更具Python风格。@JussiNurminen我不反对你的说法,但OP明确表示他们在寻找内置函数。@pkqxdd我认为OP并不关心它在技术上是否是一个函数,只关心它是内置的。这将为每个元素求和arr\u a
。不太efficient@Tomerikoo当考虑效率时,可以将sum(arr_A)
的值分配给变量。但对于5个大小的列表,它在任何现代计算机上的运行时间差异都不到1毫秒。普遍的观点是,理解应该优先于功能性习惯用法,如过滤器和映射。更短、更具python风格。@JussiNurminen我不反对你的说法,但OP明确表示他们正在寻找内置函数。@pkqxdd我认为OP并不关心它在技术上是否是一个函数,只关心它是内置函数。