39

The numpy.random module defines the following 4 functions that all seem to return a float betweeb [0, 1.0) from the continuous uniform distribution. What (if any) is the difference between these functions?

random_sample([size]) Return random floats in the half-open interval [0.0, 1.0).

random([size]) Return random floats in the half-open interval [0.0, 1.0).

ranf([size]) Return random floats in the half-open interval [0.0, 1.0).

sample([size]) Return random floats in the half-open interval [0.0, 1.0).

--------------------------- Edit Follows ---------------------------------------

I found the following in numpy.random source code that supports @askewchan's answer:

# Some aliases:
ranf = random = sample = random_sample
__all__.extend(['ranf','random','sample'])
4

2 回答 2

51

Nothing.

They're just aliases to random_sample:

In [660]: np.random.random
Out[660]: <function random_sample>

In [661]: np.random.ranf
Out[661]: <function random_sample>

In [662]: np.random.sample
Out[662]: <function random_sample>

In [663]: np.random.random_sample is np.random.random
Out[663]: True

In [664]: np.random.random_sample is np.random.ranf
Out[664]: True

In [665]: np.random.random_sample is np.random.sample
Out[665]: True
于 2013-09-16T13:33:50.813 回答
0

I got different answers.

print(np.random.random)
print(np.random.ranf)
print(np.random.sample)
print(np.random.rand)
print(np.random.random_sample is np.random.random)
print(np.random.random_sample is np.random.ranf)
print(np.random.random_sample is np.random.sample)


<built-in method random of numpy.random.mtrand.RandomState object at 0x000001FC2C459D08>
<built-in function ranf>
<built-in function sample>
<built-in method rand of numpy.random.mtrand.RandomState object at 0x000001FC2C459D08>
False
False
False
于 2020-05-05T10:07:02.533 回答