Python Random Number – Generate Random Numbers With NumPy

Python course with 57 real-time projects - Learn Python

Today, in this Python tutorial, we will talk about Python Random Number.

We will see ways to generate and import Random Number in Python. Also, we will discuss generating Python Random Number with NumPy. 

So, let’s begin.

Need of Python Random Number

A Random Number in Python is any number in a range we decide.

From initializing weights in an ANN to splitting data into random train and test sets, the need for generating random numbers is apparent.

Another use-case could be the random shuffling of a training dataset in stochastic gradient descent.

So today, we will discuss pseudorandom generators in Python. We will also try doing that with the standard Python library and with NumPy.

How to Generate Python Random Number?

How to Generate Python Random Number

What we really generate is pseudorandom numbers. These are numbers that appear nearly random but are actually something we generate with a deterministic process.

Python uses the Mersenne Twister pseudorandom number generator.

The process of generating random numbers involves deterministically generating sequences and seeding with an initial number.

The default for the seed is the current system time in seconds/ milliseconds. A different seed will produce a different sequence of random numbers.

1. Import Python Random

Before we can begin, let’s first import the module random from the Python Standard Library. You can directly import it-

import random

To import a piece of functionality from it- say, random, you can:

from random import random

Or for seed, you can:

from random import seed

2. Random Floating Point Numbers

Let’s take an example of generating Python Random Number.

>>> from random import seed
>>> from random import random
>>> seed(7)
>>> random(),random(),random(),random()

Output

(0.32383276483316237, 0.15084917392450192, 0.6509344730398537, 0.07243628666754276)

Works for us. Now, what if we reseed to the same value and call the random() functions/methods again?

>>> seed(7)
>>> random(),random(),random(),random()

Output

(0.32383276483316237, 0.15084917392450192, 0.6509344730398537, 0.07243628666754276)

You’ll find it gives us the same thing as it did earlier.

  • Working with minimum values and multiplying the floats-

Some days, you may not want to generate Random Number in Python values between 0 and 1.

In the following piece of code, 2 is the minimum value, and we multiple the random number generated by 10.

>>> seed(7)
>>> 2+10*random()

Output

5.238327648331624

3. Python Random Integers

We use the randint() function to get integers instead, randomly.

It takes two arguments- the start and the top, and then draws a random value from a uniform distribution. Each value has an equal chance of being picked.

>>> from random import randint
>>> seed(7)
>>> randint(0,9),randint(0,9),randint(0,9)

Output

(5, 2, 6)

We asked for three random values, this gave us 5, 2, and 6.

4. Getting Integers Randomly from a Range

randrange() randomly selects an element from range(start,stop,step).

>>> from random import randrange
>>> randrange(-2,4)

Output

-1
>>> randrange(-2,4)

Output

0
>>> randrange(-2,4)

Output

1
>>> randrange(-2,4)

Output

-1
>>> randrange(-2,4)

Output

2
>>> randrange(-2,4)

Output

-2

5. Random Gaussian Values

The gauss() function takes in two arguments- the mean and the standard deviation. This gives us a real-valued distribution.

>>> from random import gauss
>>> seed(7)
>>> gauss(0,1),gauss(0,1),gauss(0,1)

Output

(-0.2558802884476004, 0.511431512516514, -0.2260961647831047)

6. Choosing Randomly From Lists

It is possible to randomly pick values from our own custom lists. We have the choice() function/method for this.

>>> list=[2,4,3,9,6,2,1,0,7,4,3,5,3,6,8]
>>> from random import choice
>>> seed(7)
>>> choice(list),choice(list),choice(list),choice(list),choice(list),choice(list)

Output

(2, 3, 1, 3, 2, 4)

For a choice of multiple values, you can use choices() instead.

>>> from random import choices
>>> choices(list,k=4)

Output

[7, 2, 9, 7]

7. Randomly Choosing a Subset from a List

Once sample() puts an item from a list into the sublist, it does not add it back to the original list for picking from.

This is selection without replacement. Note that this does not modify the original list. This function/ method also takes the size of the subset to create.

>>> list

Output

[2, 4, 3, 9, 6, 2, 1, 0, 7, 4, 3, 5, 3, 6, 8]
>>> from random import sample
>>> sample(list,6)

Output

[6, 7, 4, 2, 4, 2]

8. Shuffling a List Randomly

We can shuffle a list like a deck of cards with the shuffle() function/ method.

This shuffles the list in-place. In other words, it does not need to create a new list to put shuffled items into one by one.

>>> list

Output

[2, 4, 3, 9, 6, 2, 1, 0, 7, 4, 3, 5, 3, 6, 8]
>>> from random import shuffle
>>> shuffle(list)
>>> list

Output

[6, 3, 2, 3, 6, 5, 0, 3, 4, 1, 4, 2, 9, 7, 8]

Note that this modifies the list.

How to Generate Python Random Number with NumPy?

With the seed() and rand() functions/ methods from NumPy, we can generate random numbers. The functionality is the same as above.

>>> from numpy.random import seed
>>> from numpy.random import rand
>>> seed(7)
>>> rand(3)

Output

array([0.07630829, 0.77991879, 0.43840923])
>>> seed(7)
>>> rand(3)

Output

array([0.07630829, 0.77991879, 0.43840923])

Python Interview Questions on Random Numbers

  1. How to choose random number from list in Python?
  2. How to generate random number using NumPy?
  3. Explain the way to get Random Gaussian Numbers.
  4. How does python generate Random Numbers?
  5. What is the need to generate random number in Python?

Conclusion

Now you know how to generate random numbers in Python. We used two modules for this- random and numpy.

Moreover, we discussed the process of generating Python Random Number with examples. 

You give me 15 seconds I promise you best tutorials
Please share your happy experience on Google

follow dataflair on YouTube

15 Responses

  1. Lalit Siraswa says:

    from numpy.random import rand

    Traceback (most recent call last):
    File “”, line 1, in
    from numpy.random import rand
    ModuleNotFoundError: No module named ‘numpy’

    • DataFlair Team says:

      Hi Lalit,
      Thanks for connecting DataFlair. You are getting an error because you didn’t install numpy. We recommend you to install numpy first then run this code on it. Furthermore, if you will get a query, you can write us back.
      Regards,
      DataFlair

  2. Manish Jangid says:

    Please explain the mean of seed(7) in random floating point numbers.

    • DataFlair Team says:

      Hello Manish,
      Seed(7) is to provide a starting value for generating a random number in Python. In other words, it is to feed the generator.
      Hope, it helps!
      Regards,
      DataFlair

  3. Seema says:

    Hi , Related to Seed(7), I understood that it is for getting same random value again and again.But what is the significance of (7) as I am getting same result with any number.Also thanks for the great platform to learn.I have just started to learn Python for Data Analysis as complete novice.

    • DataFlair Team says:

      Python Seed() is used to initialize the random number generator. The random number generator needs a number to start with (a seed value), to be able to generate a random number.

  4. Semih says:

    Hello. As other friends had, I have same question with “seed”
    Do we have to use it? instead of “seed”, i can create random number like that

    from numpy.random import rand
    rand() #this works. So why should I add “seed” ?

    Thank you for tutorials. They are really detailed. I like your work!

  5. Aditya says:

    What does seed mean, you use seed(7) in your code.

    • DataFlair Team says:

      Python Seed() is used to initialize the random number generator. The random number generator needs a number to start with (a seed value), to be able to generate a random number.

  6. Anjeev Singh says:

    If you are not using the seed(n), then it will take time as seed value. seed(n) help us in generating the same value again and again. You can say that seed() is use to control the random number generator.

  7. Zaeem says:

    You are missing the point that you have to use print function to show all those random number after running the program.

    • maddypie says:

      Zaeem, all these examples shown are executed in an Interactive shell.

    • DataFlair says:

      Printing the random values is in the last line of the whole program and since it gets executed at the end, even if we don’t write the randint() inside the print() function, we get the values in the console. If these are in the middle of the program, then we have to use the print() function. Hope I could clarify your doubt.

  8. DataFlair says:

    Using seed() is similar to controlling the random number generated. This is very helpful when you are intending to get the same number(s). For example, you wrote an algorithm and its output depends on a random number. And you want to get the output you got in the past, then seed() will help. I hope I made it clear.

  9. Bashar Umar says:

    Hello, what is the use of the integer value in the seed function, example seed(8) and seed(78)?

Leave a Reply

Your email address will not be published. Required fields are marked *