Python 对单个int使用np.random是错误的做法吗?
根据我最近发布的一条评论 您使用numpy.random而不是标准random的任何原因 模块 @Gulzar“有什么理由不这样做吗?”-是:模块NotFoundError:否模块 名为“numpy”。这是一个坏的做法,需要一个外部的图书馆 使用标准库同样可以做得很好的事情。 实际上,标准库会使程序稍微短一些 (导入随机;random.randint(低\u限制,高\u限制+1)) 我想更好地理解为什么使用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更糟糕 在这种情况下,我选择随机的原因是: 我的代码
np.random
比标准的random更糟糕
在这种情况下,我选择随机的原因是:
pip安装
it即可我希望我的问题足够具体,不会被认为是基于观点的。
如果问题仍然不够具体,请建议改进,而不是结束。用户可能还没有安装的所有内容都是成本。另外,
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]
从数组中提取标量值。