Tôi có một mảng numpy 1-D a = [1,2,3,4,5,6]
và một hàm nhận hai đầu vào, starting_index
và ending_index
và trả về a[staring_index:ending_index]
.Chỉ số mảng dạng vòng tròn
Rõ ràng là tôi gặp rắc rối khi ending_index
nhỏ hơn starting_index
. Trong trường hợp này, hàm sẽ bắt đầu từ start_index và đi qua vector a
theo cách tròn, tức là trả về tất cả các phần tử đến sau starting_index
cộng với tất cả các phần tử từ chỉ mục 0 đến số ending_index
.
Ví dụ: nếu starting_index=4
và ending_index=1
thì đầu ra phải là output = [5,6,1]
. Tôi có thể thực hiện nó với một điều kiện if
nhưng tôi đã tự hỏi nếu có bất kỳ cách Pythonic và súc tích để làm điều đó?
này dường như liên quan: https://scimusing.wordpress.com/2013/10/25/ring-buffers-in-pythonnumpy/ – endolith