Sono nuovo su python (e persino sulla programmazione!), Quindi cercherò di essere il più chiaro possibile per spiegare la mia domanda. Per voi ragazzi potrebbe essere facile, ma non ho ancora trovato un risultato soddisfacente su questo.Sommazione di soli valori consecutivi in un array python
Qui è il problema:
Ho un array con entrambi i valori negativi e positivi, dire:
x = numpy.array([1, 4, 2, 3, -1, -6, -6, 5, 6, 7, 3, 1, -5, 4, 9, -5, -2, -1, -4])
desidero sommare solo le negativi valori che sono continuo, cioè solo somma (-1, -6, -6), somma (-5, -2, -1, -4) e così via. Ho provato a utilizzare numpy.where, nonché a numpy.split in base alle condizioni.
Ad esempio:
for i in range(len(x)):
if x[i] < 0.:
y[i] = sum(x[i])
Tuttavia, come ci si può aspettare, ho appena ricevuto la somma di tutti i valori negativi nella matrice, invece. In questo caso somma (-1, -6, -6, -5, -5, -2, -1, -4) Potrebbero ragazzi condividere con me un modo estetico ed efficiente per risolvere questo problema? Apprezzerò qualsiasi risposta su questo.
La ringrazio molto
Qual è l'output previsto? –
Sei alla ricerca di una soluzione 'numpy' solo o pura soluzione python? – Akavall
Per me va bene con una soluzione pitonica. Sto cercando di seguire il consiglio di Kasramvd. Comunque, se mi consigli un'altra opzione oltre a usare itertools, andrebbe bene anche così. – hurrdrought