Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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 包含4个元素的数组:需要比较max+;min和其他2个元素_Python_Arrays_Numpy - Fatal编程技术网

Python 包含4个元素的数组:需要比较max+;min和其他2个元素

Python 包含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 =

使用numpy array命令,我有一个包含4个值的数组,名为array
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项数组。