# Select Multinomial Rows from Array with 'n' Degrees

The multinomial distribution represents the probability of observing multiple possible outcomes in a single trial. By selecting these specific rows, we can analyze and draw conclusions about the underlying probability distribution. This article involves choosing specific rows from a dataset that are generated from a multinomial distribution with ‘n’ degrees, which can be done by using the following methods:

#### 1. Using “np.all()”:

Here, the `np.all()` function is used to check if all elements of each row of `X` are integers, by checking if the modulus of each element with `1` is `zero`. The `axis=1` argument indicates that we want to apply this check to each row. The `&` operator is used to perform an element-wise “and” operation between the two boolean arrays: the one obtained from the integer check, and the one obtained from the sum check. Finally, we print the rows of `X` that satisfy both conditions by indexing `X` with the boolean array `M`.

#### 2. Using “np.sum()” and “np.astype()”:

This code first converts all values in `X` to integers using the `np.astype()` method and checks if all values in each row are integers by comparing with the original `X` using `==`. This is done using the `np.sum()` method along the rows (`axis=1`) and comparing the result with `X.shape[1]`. Next, the code checks if the sum of each row of `X` is equal to `n` using the `np.sum()` method along the rows (`axis=1`) and compares the result with `n`. Finally, the code combines the two conditions using logical AND (`np.logical_and()`) and prints the rows of `X` that satisfy both conditions.