我是Python的初学者.努力学习numpy.
import numpy as np
x = np.arange(0.5, 10.4, 0.8, int)
Run Code Online (Sandbox Code Playgroud)
它输出:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 ]
Run Code Online (Sandbox Code Playgroud)
我期待它返回(最后一项是10.4):
[ 0 1 2 3 4 5 6 7 8 9 10 ]
Run Code Online (Sandbox Code Playgroud)
除此之外,如果我执行此(理解这个例子):
x = np.arange(0.5, 10.4, 0.8)
print(x)
Run Code Online (Sandbox Code Playgroud)
它打印:
[ 0.5 1.3 2.1 2.9 3.7 4.5 5.3 6.1 6.9 7.7 8.5 9.3 10.1 ]
Run Code Online (Sandbox Code Playgroud)
这是一种非常奇怪的召唤方式arange.这种行为没有记录,我认为没有太多考虑.这是基于源的情况,至少在当前版本中会发生什么.
使用您传递的原始参数,0.5,10.4和0.8,NumPy使用_calc_length辅助函数计算结果的长度和第二个元素.这些计算在Python对象算术中完成,长度转换为npy_intp整数.在您的情况下,长度计算为13.
然后,NumPy分配所请求数据类型和计算长度的数组,并将前两个元素存储在数组中.当元素被存储时,它们经历通常的NumPy dtype转换.在您的情况下,前两个元素被强制为0和1.
最后,NumPy调用新数组的fill函数,用前两个元素计算的值填充数组.该fill函数重新计算前两个元素的步骤,因此它计算步长为1并使用0到12之间的整数填充数组.
| 归档时间: |
|
| 查看次数: |
452 次 |
| 最近记录: |