Python

NumPy Np.Random.Multinomial()

In this post, we will explore the random.multinomial() function in the NumPy package.

The multinomial() function generates an array of the multinomial distribution.

A multinomial distribution is a multivariate generalization of the binomial distribution in probability theory.

Learn more about multinomial distribution in the resource below:

https://en.wikipedia.org/wiki/Multinomial_distribution

NumPy np.random.multinomial() Function Syntax

sky

1
random.multinomial(n, pvals, size=None)

Function Parameters

The function parameters as discussed below:

  1. n – defines the number of experiments.
  2. pvals – sets the probabilities of each of the different p outcomes.
  3. size – sets the output shape of the resulting array.

Return Value

The function returns an array of multinomial distributions of the shape specified by the size parameter. If the size is not defined, the function will return a scalar value.

Example #1

Consider the example code shown below:

1
2
3
4
# import numpy
import numpy as np
arr = np.random.multinomial(6, [1/2.]*2, 2)
print(arr)

The code above generates an array of shapes (2,2) as defined by the size parameter.

NOTE: The total of the pvals MUST add to one.

The resulting value is as shown:

1
2
[[2 4]
[5 1]]

Example #2

Another example is demonstrated in the code below:

1
2
3
arr = np.random.multinomial(8, [0.02064637,0.04639968,0.07105934,0.19605029,0.00845342,0.2492401
,0.1561038,0.02840649,0.09912076,0.12451974], 3)
print(arr)

The code above should return an array as shown:

1
2
3
[[0 0 0 1 0 2 2 0 1 2]
[0 0 0 1 0 3 0 0 3 1]
[0 1 1 2 0 2 1 0 1 0]]

Closing

In this article, we demonstrated how to use the random.multinomial() function in NumPy to generate an array of a multinomial distribution.

Happy coding!!

About the author

John Otieno

My name is John and am a fellow geek like you. I am passionate about all things computers from Hardware, Operating systems to Programming. My dream is to share my knowledge with the world and help out fellow geeks. Follow my content by subscribing to LinuxHint mailing list