Hi,
On Tue, Dec 8, 2015 at 4:40 PM, Stephan Hoyer shoyer@gmail.com wrote:
On Sun, Dec 6, 2015 at 3:55 PM, Allan Haldane allanhaldane@gmail.com wrote:
I've also often wanted to generate large datasets of random uint8 and uint16. As a workaround, this is something I have used:
np.ndarray(100, 'u1', np.random.bytes(100))
It has also crossed my mind that np.random.randint and np.random.rand could use an extra 'dtype' keyword. It didn't look easy to implement though.
Another workaround that avoids creating a copy is to use the view method, e.g., np.random.randint(np.iinfo(int).min, np.iinfo(int).max, size=(1,)).view(np.uint8) # creates 8 random bytes
I think that is not quite (pseudo) random because the second parameter to randint is the max value plus 1 - and:
np.random.random_integers(np.iinfo(int).min, np.iinfo(int).max + 1, size=(1,)).view(np.uint8)
gives:
OverflowError: Python int too large to convert to C long
Cheers,
Matthew