I know that an easy way to create a NxN array full of zeroes in Python is with:
[[0]*N for x in range(N)]
However, let's suppose I want to create the array by filling it with random numbers:
[[random.random()]*N for x in range(N)]
This doesn't work because each random number that is created is then replicated N times, so my array doesn't have NxN unique random numbers.
Is there a way of doing this in a single line, without using for loops?
An array of random integers can be generated using the randint() NumPy function. This function takes three arguments, the lower end of the range, the upper end of the range, and the number of integer values to generate or the size of the array.
To create a numpy array of specific shape with random values, use numpy. random. rand() with the shape of the array passed as argument. In this tutorial, we will learn how to create a numpy array with random values using examples.
In order to generate random array of integers in Java, we use the nextInt() method of the java. util. Random class. This returns the next random integer value from this random number generator sequence.
You could use a nested list comprehension:
>>> N = 5
>>> import random
>>> [[random.random() for i in range(N)] for j in range(N)]
[[0.9520388778975947, 0.29456222450756675, 0.33025941906885714, 0.6154639550493386, 0.11409250305307261], [0.6149070141685593, 0.3579148659939374, 0.031188652624532298, 0.4607597656919963, 0.2523207155544883], [0.6372935479559158, 0.32063181293207754, 0.700897108426278, 0.822287873035571, 0.7721460935656276], [0.31035121801363097, 0.2691153671697625, 0.1185063432179293, 0.14822226436085928, 0.5490604341460457], [0.9650509333411779, 0.7795665950184245, 0.5778752066273084, 0.3868760955504583, 0.5364495147637446]]
Or use numpy
(non-stdlib but very popular):
>>> import numpy as np
>>> np.random.random((N,N))
array([[ 0.26045197, 0.66184973, 0.79957904, 0.82613958, 0.39644677],
[ 0.09284838, 0.59098542, 0.13045167, 0.06170584, 0.01265676],
[ 0.16456109, 0.87820099, 0.79891448, 0.02966868, 0.27810629],
[ 0.03037986, 0.31481138, 0.06477025, 0.37205248, 0.59648463],
[ 0.08084797, 0.10305354, 0.72488268, 0.30258304, 0.230913 ]])
(P.S. It's a good idea to get in the habit of saying list
when you mean list
and reserving array
for numpy ndarray
s. There's actually a built-in array
module with its own array
type, so that confuses things even more, but it's relatively seldom used.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With