Possiedo un array numpy 1-D a = [1,2,3,4,5,6]
e una funzione che riceve due input, starting_index
e ending_index
e restituisce a[staring_index:ending_index]
.indici circolari numpy array
Chiaramente mi imbatto in problemi quando ending_index
è minore di starting_index
. In questo caso, la funzione dovrebbe iniziare da starting_index e attraversare il vettore a
in modo circolare, cioè restituire tutti gli elementi che arrivano dopo lo starting_index
più tutti gli elementi dall'indice zero a ending_index
.
Ad esempio, se starting_index=4
e ending_index=1
, l'uscita deve essere output = [5,6,1]
. Posso implementarlo con una condizione if
ma mi stavo chiedendo se c'è qualche modo Pythonico e conciso per farlo?
questo sembra Correlati: https://scimusing.wordpress.com/2013/10/25/ring-buffers-in-pythonnumpy/ – endolith