On me donne un tableau de nombres 1D.Combinaison d'éléments de tableau d'une manière particulière et enregistrement
Je dois parcourir le tableau en ajoutant chaque élément consécutif pour former une somme. Une fois que cette somme atteint une certaine valeur, elle forme le premier élément d'un nouveau tableau. La somme est ensuite réinitialisée et le processus se répète, ce qui entraîne l'itération sur l'ensemble du tableau.
Par exemple si on leur donne: [1, 3, 4, 5, 2, 5, 3] et nécessitant la somme minimum pour être 5, la nouvelle matrice serait: [8, 5, 7]
Explicity: [1 + 3 + 4, 5, 2 + 5]
Je puis aussi besoin de garder une trace de la façon dont les éléments ont été combinés pour ce tableau particulier: je dois être à prendre tableau différent de la même longueur et combiner les éléments de la même manière que ci-dessus.
par exemple. donner la matrice [1, 2, 1, 1, 3, 2, 1] j'exige la sortie [4, 1, 5]
Explicity: [1 + 2 + 1, 1, 3 + 2 ]
J'ai accompli ceci avec des boucles d'i et des compteurs d'incrément, mais c'est très moche. Le tableau nommé « record » contient le nombre d'éléments anciens pour faire de chaque sommées élément du nouveau tableau à savoir [3, 1, 2]
import numpy as np
def bin(array, min_sum):
num_points = len(array)
# Create empty output.
output = list()
record = list()
i = 0
while i < num_points:
sum = 0
j = 0
while sum < min_sum:
# Break out if it reaches end of data whilst in loop.
if i+j == num_points:
break
sum += array[i+j]
j += 1
output.append(sum)
record.append(j)
i += j
# The final data point does not reach the min sum.
del output[-1]
return output
if __name__ == "__main__":
array = [1, 3, 4, 5, 2, 5, 3]
print bin(array, 5)
Quelle est votre question? Si vous avez accompli cela, il pourrait être intéressant de partager l'approche actuelle. –
En fait, je n'ai pas compris votre question, pourquoi ne pas poster vos soi-disant codes moche, et je vais vous aider à le refactoriser et à le rendre plus pythonique? BTW, comment pourrions-nous obtenir [8, 5, 7] de [1, 3, 4, 5, 2, 5, 3] ?? –
votre 2ème exigence n'est pas claire, comment ce '[1, 2, 1, 1, 3, 2, 1]' est transformé en '[4,1,5]' – RomanPerekhrest