Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python数组/列表:将合计值转换为相对值_Python_Arrays_List_Converters - Fatal编程技术网

Python数组/列表:将合计值转换为相对值

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)) 您

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

您可以尝试将内置函数
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并不关心它在技术上是否是一个函数,只关心它是内置函数。