np.linspace(10**3, 10**6, num=5, dtype=np.int16) 收益率array([ 1000, -11394, -23788, 29354, 16960], dtype=int16) 我不理解为什么在一个正数区间内会有负数。 有人能指出我错过了什么吗?(而且最终如何才能获得像那样的长整数序列上的线性间隔数字。) 谢谢!
正如评论中所提到的,原因在于overflow。 更具体地说,您要求介于1E3至1E6之间的数字,但int16仅支持范围内的值[-32768, 32767]。 当我们尝试使用int16表示像40000这样的数字时,该值会被包装,我们得到的是40000-2 ** 16 == -25536 。 大数会不断“包装”,直到变得足够小才能表示。
np.int32
或np.int64
。 - roganjosh