【问题标题】:`numpy.empty()` and `numpy.random.rand()` same or different`numpy.empty()` 和 `numpy.random.rand()` 相同或不同
【发布时间】:2021-01-05 11:51:35
【问题描述】:

NumPy中有两个函数,一个是numpy.random.rand(),另一个是numpy.empty()。这两个函数都给了我相同的输出。 代码:

>>> import numpy as np
>>> np.random.rand(3,2)
array([[0.54372255, 0.68730993],
       [0.97759727, 0.39876009],
       [0.47325882, 0.57949219]])

>>> np.empty([3,2])
array([[0.54372255, 0.68730993],
       [0.97759727, 0.39876009],
       [0.47325882, 0.57949219]])

因为它们都给出相同的输出,所以它们是相同的还是不同的? 在这里我的意思是两个函数具有相似的实现或它们具有不同的实现

如果两者不同,那么哪个更好或更有效?

【问题讨论】:

  • 阅读他们的文档,看看他们没有任何共同点。也许也可以谷歌未初始化的内存(或维基Uninitialized variable
  • 它们不一样,倒序使用这两个函数试试。 numpy 使用您之前初始化时可用的内存来为np.empty() 申请内存,因为它是一块大小合适的内存。
  • 哦,我明白了。

标签: python function numpy random


【解决方案1】:

它们是不同的!

兰德,基于种子生成给定形状的一些数字。

另一方面,empty返回一个unitialized数组,所以这意味着它指向一个随机内存位置,不小心这个返回随机值,但是失控了,在您的示例中,gc 已释放 memoty 位置,因此相同的区域被具有相同形状的空白占据。

所以不要使用空来生成随机值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 2018-09-06
    • 2016-09-26
    相关资源
    最近更新 更多