Python 对单个int使用np.random是错误的做法吗?

Python 对单个int使用np.random是错误的做法吗?,python,numpy,standards,libraries,Python,Numpy,Standards,Libraries,根据我最近发布的一条评论 您使用numpy.random而不是标准random的任何原因 模块 @Gulzar“有什么理由不这样做吗?”-是:模块NotFoundError:否模块 名为“numpy”。这是一个坏的做法,需要一个外部的图书馆 使用标准库同样可以做得很好的事情。 实际上,标准库会使程序稍微短一些 (导入随机;random.randint(低\u限制,高\u限制+1)) 我想更好地理解为什么使用np.random比标准的random更糟糕 在这种情况下,我选择随机的原因是: 我的代码

根据我最近发布的一条评论

您使用numpy.random而不是标准random的任何原因 模块

@Gulzar“有什么理由不这样做吗?”-是:模块NotFoundError:否模块 名为“numpy”。这是一个坏的做法,需要一个外部的图书馆 使用标准库同样可以做得很好的事情。 实际上,标准库会使程序稍微短一些 (导入随机;random.randint(低\u限制,高\u限制+1))

我想更好地理解为什么使用
np.random
比标准的random更糟糕

在这种情况下,我选择随机的原因是:

  • 我的代码库是基于numpy的,从来没有遇到过问题。只需
    pip安装
    it即可
  • 这是非常普遍的
  • 当人们可以使用标准时,使用numpy真的有什么问题吗?从什么时候开始使用外部库是不好的做法(在发布此问题时有4票赞成)

    我认为比标准差的例子有:

  • 不可读
  • 很难合并到代码中
  • 也许我应该在列表中添加一些项目

    我希望今后避免不良做法:)


    我希望我的问题足够具体,不会被认为是基于观点的。

    如果问题仍然不够具体,请建议改进,而不是结束。

    用户可能还没有安装的所有内容都是成本。另外,
    import numpy
    可能需要几秒钟的时间(每个程序运行一次的成本,但这可能非常烦人,特别是如果有人试图在shell脚本中多次运行您的程序)


    如果程序逻辑的其余部分已经需要Numpy,那么继续。这里的成本都是一次性成本;一旦你被迫付款,就是这样。

    在已导入
    numpy
    ipython
    会话中:

    In [1]: import random
    In [2]: random.randint(0,100)
    Out[2]: 89
    In [3]: timeit random.randint(0,100)
    1.5 µs ± 2.05 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
    In [4]: timeit np.random.randint(0,100)
    5.46 µs ± 121 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
    In [5]: timeit np.random.randint(0,100,1)[0]
    23.3 µs ± 1.32 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
    

    在其他地方不需要
    numpy
    的情况下,使用
    random
    将生成更快、更通用的代码。特别是因为您必须采取额外的步骤
    [0]
    从数组中提取标量值。