Jestem nowy na python (a nawet programowaniu!), Więc postaram się być tak czysty, jak tylko mogę, aby wyjaśnić moje pytanie. Dla was to może być łatwe, ale nie znalazłem jeszcze satysfakcjonującego wyniku na ten temat.Podsumowanie tylko kolejnych wartości w pythonowej tablicy
Oto problem:
Mam tablicę z obu wartości ujemnych i dodatnich, powiedzieć:
x = numpy.array([1, 4, 2, 3, -1, -6, -6, 5, 6, 7, 3, 1, -5, 4, 9, -5, -2, -1, -4])
chciałbym podsumować TYLKO negatywne wartości, które są ciągły, tj. tylko suma (-1, -6, -6), suma (-5, -2, -1, -4) i tak dalej. Próbowałem używać numpy.where, a także numpy.split w oparciu o warunek.
Na przykład:
for i in range(len(x)):
if x[i] < 0.:
y[i] = sum(x[i])
Jednak, jak można się spodziewać, po prostu dostał sumowanie wszystkich wartości ujemnych w tablicy zamiast. W tym przypadku suma (-1, -6, -6, -5, -5, -2, -1, -4) Czy moglibyście podzielić się ze mną estetycznym i skutecznym sposobem rozwiązania tego problemu? Będę wdzięczny za każdą odpowiedź w tej sprawie.
Dziękuję bardzo
Jakie są oczekiwane wyniki? –
Szukasz rozwiązania "numpy" lub czystego Pythona? – Akavall
Dla mnie jest w porządku z pythonic rozwiązaniem. Próbuję postępować zgodnie z radą Kasramvd. Jednakże, jeśli polecisz mi inną opcję oprócz używania itertools, to też byłoby w porządku. – hurrdrought