为什么在Ipython中会这样做:
In [1]: 1E6
Out[1]: 1000000
工作但是:
In[2]: import numpy as np
rng = np.random.RandomState(42)
In[3]: rng.rand([1E6])
产生:TypeError:' float' object不能解释为整数
但是,如果我输入:
In[4]: rng.rand(1000000)
有效吗?
答案 0 :(得分:1)
请记住,科学也可用于表示微小的数字:
1E-3
所以在这里使用float
是有道理的。如果您现在检查1E6
的类型,您会注意到
type(1E6) # <class 'float'>
,而
type(1000000) # <class 'int'>
你的代码抱怨
TypeError: 'float' object cannot be interpreted as an integer
因此,如果您明确地将1E6
投射到int
,它将按预期工作
rng.rand(int(1E6))