簡體   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