创建列表np.arange

时间:2019-12-11 03:33:10

标签: python numpy

我想创建列表,所以我使用了:

x_ticks=np.arange(x1, x2, 6)
print(x_ticks)
print(type(x_ticks))
print(x_ticks[5])

结果是:

[-1.15e-14]
<class 'numpy.ndarray'>
Traceback (most recent call last):
  File "el_motion.py", line 371, in <module>
    print(x_ticks[5])
IndexError: index 5 is out of bounds for axis 0 with size 1

为什么没有打印6个元素?谢谢

编辑

如何使用此列表在3d中绘制细线并进行循环?

x1=-1.15e-14
x2=0.009e-14
x_ticks=np.linspace(x1, x2, 6)
print(x_ticks)
print(type(x_ticks))
print(x_ticks[5])

stepx=(x2-x1)/6
print(stepx)
for xi in range(1, 6):
    ax.plot([xi*stepx, xi*stepx], [-6.3e-15, -6.4e-15], [0,0])

结果是一行不在所需位置。我想在平面z上打印它,线的长度由y设置,起点由x定义。

2 个答案:

答案 0 :(得分:2)

numpy arange()的第三个参数是step,元素数取决于x1x26,您可能需要打印x_ticks。例子:

>>> np.arange(0, 24, 6)
array([ 0,  6, 12, 18])
>>> np.arange(0, 30, 6)
array([ 0,  6, 12, 18, 24])

答案 1 :(得分:2)

我的猜测是x1和x2之间的差小于提供的步长间隔(6)。例如:

np.arange(1, 5)

打印

[1, 2, 3, 4]

np.arange(1, 5, 6)

6太大了,因此只返回第一个值

[1]

np.linspace(x1,x2,6)将返回x1一个和x2之间均匀间隔的增量,从而得到6个数字