Change language

# Random Walk (Python implementation)

| | |

Enough boring theory. Let’s take a break to get some coding knowledge. So, to code the random walk, we basically need some libraries in python, some for math and some others for curve fitting.

Required Libraries

1. matplotlib This is an external library to help you plot a curve. To install this library, enter the following code in your cmd.
` pip install matplotlib `

This would be enough to get you through the installation.

2. Numpy It is also an external Python library that helps you work with arrays and matrices. To install the library, enter the following code in cmd.
` pip install numpy `
3. random This is a built-in python library that we will use to generate random points.

One-dimensional random walk . An elementary example of a random walk is a random walk over a string of integers, which starts at 0 and is shifted by +1 or? 1 with equal probability.

So let’s try to implement 1-D random walk in python.

Output:

Higher dimensions In higher dimensions, many randomly passed points have interesting geometric properties. In fact, a discrete fractal is obtained, that is, a set that demonstrates stochastic self-similarity on a large scale. On a small scale, you can observe "irregularities" arising from the net on which the walk is performed. Lawler’s two books mentioned below are good sources on this topic. The trajectory of a random walk — it is a set of visited points, treated as a set that does not account for when the walk has reached a point. In one dimension, the trajectory — it’s just all the points between the minimum height and the maximum height that the walk has reached (on average, both orders of magnitude? N).

Let’s try to create a random walk in 2D.

 ` # Python code for 1- D random walk. ` ` import ` ` random ` ` import ` ` numpy as np ` ` import ` ` matplotlib.pyplot as plt `   ` # Probability to move up or down ` ` prob ` ` = ` ` [` ` 0.05 ` `, ` ` 0.95 ` `] `   ` # statically defining the starting position `  ` start ` ` = ` ` 2 `  ` positions ` ` = ` ` [start] `   ` # generate random dots ` ` rr ` ` = ` ` np.random.random (` ` 1000 ` `) ` ` downp ` ` = ` ` rr & lt; prob [` ` 0 ` `] ` ` upp ` ` = ` ` rr" prob [` ` 1 ` `] `     ` for ` ` idownp, iupp ` ` in ` ` zip ` ` (downp, upp): ` ` down ` ` = ` ` idownp ` ` and ` ` positions [` ` - ` ` 1 ` `]" ` ` 1 ` ` up ` ` = ` ` iupp ` ` and ` ` positions [` ` - ` ` 1 ` `] & lt; ` ` 4 ` ` positions.append (positions [` ` - ` ` 1 ` `] ` ` - ` ` down ` ` + ` ` up) `   ` # plotting a random walk in 1D ` ` plt.plot (positions) ` ` plt.show () `
 ` # Python code for 2D random walk. ` ` import ` ` numpy ` ` import ` ` pylab ` ` import ` ` random `   ` #determine the number of steps ` ` n ` ` = ` ` 100000 `   ` # create two arrays to store x and y coordinates ` ` # of size is equal to the number of si ze and filled with zeros ` ` x ` ` = ` ` numpy .zeros (n) ` ` y ` ` = ` ` numpy.zeros (n) `   ` # filling coordinates with random values ​​` ` for ` ` i ` ` in ` ` range ` ` (` ` 1 ` `, n): ` ` val ` ` = ` ` random.randint (` ` 1 ` `, ` ` 4 ` `) ` ` if ` ` val ` ` = = 1 : `` x [i] = x [ i - 1 ] + 1   y [ i] = y [i - 1 ] elif val = = 2 :   x [i] = x [i - 1 ] - 1 y [i] = y [i - 1 ]   elif val = = 3 : x [i] = x [i - 1 ]   y [i] = y [i - 1 < / code> ] + 1 else :   x [i] = x [i - 1 ] y [i] = y [ i - 1 ] - 1      # conspiracies: pylab.title ( "Random Walk (\$ n =" + str (n) + " \$ steps) " ) pylab.plot (x, y) pylab.savefig ( "rand_walk" + str (n) + ". png " , bbox_inches = "tight" , dpi = 600 ) pylab.show () `

Output:

Applications

1. In computer networks, random Traversals can simulate the number of transmission packets buffered on the server.
2. In population genetics, random walks describe the statistical properties of genetic drift.
3. In image segmentation, random walks are used to define labels (i.e. E. "Object" or "background") associated with each pixel.
4. In brain research, random walks and enhanced random walks are used to simulate neuronal firing cascades in the brain.
5. Random walks have also been used to sample huge online graphs such as online social media.

This article is courtesy of Subhajit Saha . If you are as Python.Engineering and would like to contribute, you can also write an article using contribute.python.engineering or by posting an article contribute @ python.engineering. See my article appearing on the Python.Engineering homepage and help other geeks.

Please post comments if you find anything wrong or if you’d like to share more information on the topic discussed above.

## Shop

Learn programming in R: courses

\$

Best Python online courses for 2022

\$

Best laptop for Fortnite

\$

Best laptop for Excel

\$

Best laptop for Solidworks

\$

Best laptop for Roblox

\$

Best computer for crypto mining

\$

Best laptop for Sims 4

\$

Latest questions

NUMPYNUMPY

Common xlabel/ylabel for matplotlib subplots

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

12 answers

NUMPYNUMPY

Flake8: Ignore specific warning for entire file

12 answers

NUMPYNUMPY

glob exclude pattern

12 answers

NUMPYNUMPY

How to avoid HTTP error 429 (Too Many Requests) python

12 answers

NUMPYNUMPY

Python CSV error: line contains NULL byte

12 answers

NUMPYNUMPY

csv.Error: iterator should return strings, not bytes

12 answers

## Wiki

Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python

How to specify multiple return types using type-hints

Printing words vertically in Python

Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries

Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically