繁体   English   中英

创建限制以将数组值的总和查找为一组 Numpy Python

[英]Creating a limit to find the sum of array values to a set number Numpy Python

我想创建一个函数,其中ArraysArrays2数组的总和等于val 该函数应该修改ArraysArrays2值,以便最后一个索引将数组中所有值的总和输出为val 怎样才能得到预期的输出?

import numpy as np 

Arrays = np.array([50, 30, 25, 87, 44, 68, 45])
Arrays2 = np.array([320])
val = 300

预期输出:

[50, 30, 25, 87, 44, 64]
[300]

尝试这个:

import numpy as np

Arrays = np.array([50, 30, 25, 87, 44, 68, 45])
Arrays2 = np.array([320])
val = 300

def asd(arr, v):
    new_a = []
    for i in arr:
        if sum(new_a + [i]) < v:
            new_a.append(i)
        else:
            new_a.append(v-sum(new_a))
            break
    return np.array(new_a)

print(asd(Arrays, val))
print(asd(Arrays2, val))

[50 30 25 87 44 64]
[300]

像这样的东西?

import numpy as np 

Arrays = np.array([50, 30, 25, 87, 44, 68, 45])
Arrays2 = np.array([320])
val = 300


def thisRareFunction(arr):

    outArrays = []
    acum = 0
    for x in arr:
        acum += x
        if acum <=val:
            outArrays.append(x)
        else:
            outArrays.append(x -(acum-val))
            break
    return outArrays

print(thisRareFunction(Arrays))
print(thisRareFunction(Arrays2))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM