Python:强制将Long强制转换为Int32

Python:强制将Long强制转换为Int32,python,numpy,Python,Numpy,我正在生成一个随机种子 如果我: numpy.random.seed(time.time_ns()) # or numpy.random.seed(int(time.time_ns()) # and numpy.random.seed(numpy.int32(time.time_ns()) 在前两次尝试中出现“num type应为int32”错误,在最后一次尝试中出现“从64位数字到32位数字的无效强制转换” 我如何在没有2**32模的情况下强制执行此操作?time.time\n()

我正在生成一个随机种子

如果我:

numpy.random.seed(time.time_ns())

# or

numpy.random.seed(int(time.time_ns())

# and

numpy.random.seed(numpy.int32(time.time_ns())

在前两次尝试中出现“num type应为int32”错误,在最后一次尝试中出现“从64位数字到32位数字的无效强制转换”


我如何在没有2**32模的情况下强制执行此操作?

time.time\n()
返回一个
int
,因此前两个是等价的
np.random.seed(time.time_ns())
给了我一个
值错误:seed必须介于0和2**32-1之间,所以我想您必须确保该值适合32位。您的
…%2**32
工作正常,我不知道您有什么问题。@Nikrasmertsch我宁愿它是我设置的正式属性(即使它是隐藏的过程)。在python3中使用数学与在其他语言中使用离散逻辑相比,对于许多人来说是一个很大的风格变化。
time.time\n()
numpy.random.seed(…)
可以使用的(32位)更多的信息(64位)。因此,如果您确实想使用
time.time\ns()
,则需要某种形式的信息缩减。“很多人”都不熟悉这个问题,我怀疑发表评论会比找到其他解决方案更有帮助。@NiklasMertsch用任何其他语言我都能说出这个数字。在python中,我必须执行纯数学函数。这太荒谬了。将int64转换为int32作为正式步骤(概念上是O(1))而不是函数子句的方法是什么?一方面,你把一张纸粘在信封里,然后把剩下的纸剪掉。。。另一方面,你有一些复杂的知识和聪明,相当于相同的东西,有点(实际上,没有
-1
,这是完全错误的)。为什么后一种方法更优越?那么我们对什么是高级操作有不同的印象。无论如何,
ctypes.c_int32(num).value似乎就是您要寻找的东西