我使用了NumPy的arange函数创建了以下范围:
a = n.arange(0,5,1/2)
这个变量本身是没有问题的,但是当我在脚本中的任何位置尝试使用它时,就会出现错误,错误消息如下:
ZeroDivisionError: 除以零
首先,在Python 2.x中,您的step
将被评估为零。其次,如果您想使用非整数步长,可以查看np.linspace
。
Docstring:
arange([start,] stop[, step,], dtype=None)
Return evenly spaced values within a given interval.
[...]
When using a non-integer step, such as 0.1, the results will often not
be consistent. It is better to use ``linspace`` for these cases.
In [1]: import numpy as np
In [2]: 1/2
Out[2]: 0
In [3]: 1/2.
Out[3]: 0.5
In [4]: np.arange(0, 5, 1/2.) # use a float
Out[4]: array([ 0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])
from __future__ import division
。
1/2
的计算结果。 - askewchan