Predictive Hacks

# How to Circular Shift Lists in Python

Let’s say that we have a Python List (or 1-D numpy array) and we want to shift it by n positions. Let’s see some ways of how we can do it.

### Using pop

Assume that the list x is [1,2,3,4,5] let’s see how we can shift it by one position ahead.

x = [1,2,3,4,5]
x.append(x.pop(0))
x

[2, 3, 4, 5, 1]


### Using Collection deque

This method allows us to shift by n elements ahead at once, using both directions, forward and backward. We just need to use the rotate method on the deque object. Note, that you can easily convert a deque object to a list like list(x) where x is a deque object.

import collections
x  = collections.deque([1, 2, 3, 4, 5])
x.rotate(1)
x

deque([5, 1, 2, 3, 4])


Note, that we also rotate it backwards by 2 steps:

x  = collections.deque([1, 2, 3, 4, 5])
x.rotate(-2)
x

deque([3, 4, 5, 1, 2])


### Using numpy roll

Finally, we can use the roll method to the numpy arrays. It also supports both directions and n steps. For example:

import numpy
x=numpy.arange(1,6)
numpy.roll(x,1)

array([5, 1, 2, 3, 4])


Or, if we want to get 2 steps backwards:

x=numpy.arange(1,6)
numpy.roll(x,-2)

array([3, 4, 5, 1, 2])


### Get updates and learn from the best

Miscellaneous

#### How to Redirect and Save Errors in Unix

In Unix, there are three types of redirection such as: Standard Input (stdin) that is denoted by 0. Usually, it’s

Python

#### Content-Based Recommender Systems with TensorFlow Recommenders

In this post, we will consider as a reference point the “Building deep retrieval models” tutorial from TensorFlow and we