Python 包含4个元素的数组:需要比较max+;min和其他2个元素
使用numpy array命令,我有一个包含4个值的数组,名为arrayPython 包含4个元素的数组:需要比较max+;min和其他2个元素,python,arrays,numpy,Python,Arrays,Numpy,使用numpy array命令,我有一个包含4个值的数组,名为arrayr from numpy import array, amax, amin r = array([r1,r2,r3,r4] 我需要求此数组的最大值和最小值之和: g_1 = amax(r)+amin(r) 现在我需要将这个值(g_1)与数组中其他两个元素的和进行比较(我不知道在编写这部分代码时最大值是多少),我不知道如何进行比较。来自numpy import sum from numpy import sum g_2 =
r
from numpy import array, amax, amin
r = array([r1,r2,r3,r4]
我需要求此数组的最大值和最小值之和:
g_1 = amax(r)+amin(r)
现在我需要将这个值(g_1
)与数组中其他两个元素的和进行比较(我不知道在编写这部分代码时最大值是多少),我不知道如何进行比较。来自numpy import sum
from numpy import sum
g_2 = sum(r) - g_1
comp = g_1 <= g_2
g_2=和(r)-g_1
comp=g_1数组的其他两个元素的总和就是数组中所有元素的总和,减去最大值和最小值:sum(r)-g_1
您也可以对数组进行排序,总体上可能需要更少的比较:
r_sort = np.sort(r)
g_1 = r_sort[0] + r_sort[-1]
g_2 = r_sort[1] + r_sort[2]
我尝试使用for和if来查看我是否能正确地完成它,并且我编写的代码似乎有效:
from numpy import array, amax, amin
r=array([r1,r2,r3,r4])
g_1=amax(r)+amin(r)
for j in range (size(r)):
if r[j] != amax(r) and r[j] != amin(r):
g_2+=r[j]
这段代码似乎正确地返回了我所寻找的g_2。不是最好的解决方案,您对此有何看法?您想如何“比较”它们?我需要查看“a>=b”这样的条件是否得到遵守,然后使用它。我认为您的代码中有错误。它应该是:g_1=r_排序[0]+r_排序[3],而不是:g_1=r_排序[0]+r_排序[-1]。我错了吗?使用负指数意味着从末尾开始计数,所以r\u排序[-1]
等于r\u排序[3]
当len(r\u排序)==4
@Hamatti对此解释得很好。按照我写的方式,g_1
将始终是最大值加最小值,如果您按照您的建议硬编码最大索引,它将仅适用于4项数组。