切片索引中的打印错误,在Python2.7上工作而不是在3.0上工作
在Python2.7中,这个脚本运行良好,在笔记本中的Python3中使用它时,我得到一个错误切片索引中的打印错误,在Python2.7上工作而不是在3.0上工作,python,python-3.x,python-2.7,plot,Python,Python 3.x,Python 2.7,Plot,在Python2.7中,这个脚本运行良好,在笔记本中的Python3中使用它时,我得到一个错误 for j in range(0,C): dataWO=np.loadtxt(filenamesWO[j*pas]) G2[:,j]=dataWO[:,1] tps=dataWO[:,0] plt.plot(np.float(j*pas)*0.2+dataWO[:,1]/np.max(dataWO[0:L*4/5,1])*10.,tps,'k') plt.plot(np.float(j*pa
for j in range(0,C):
dataWO=np.loadtxt(filenamesWO[j*pas])
G2[:,j]=dataWO[:,1]
tps=dataWO[:,0]
plt.plot(np.float(j*pas)*0.2+dataWO[:,1]/np.max(dataWO[0:L*4/5,1])*10.,tps,'k')
plt.plot(np.float(j*pas)*0.2+G[:,j]/np.max(G[0:L*4/5,j])*10.,tps,'r')
plt.show()
错误:
TypeError回溯(最近一次调用)
在里面
3 G2[:,j]=dataWO[:,1]
4 tps=数据WO[:,0]
---->5 plt.图(净现值(j*pas)*0.2+dataWO[:,1]/np.max(dataWO[0:L*4/5,1])*10,tps,'k')
6 plt.绘图(净现值(j*pas)*0.2+G[:,j]/np.max(G[0:L*4/5,j])*10,tps,'r')
7 plt.show()
TypeError:切片索引必须是整数或无,或具有_索引_方法
谢谢它告诉您错误是什么。数组上的切片(
G[…]
)表达式中不能有浮点数。在Python2中,L*4/5
返回一个整数(对于integerL
),而在Python3中它返回一个浮点。使用L*4//5
强制整数除法
TypeError Traceback (most recent call last)
<ipython-input-13-1483534b9049> in <module>
3 G2[:,j]=dataWO[:,1]
4 tps=dataWO[:,0]
----> 5 plt.plot(np.float(j*pas)*0.2+dataWO[:,1]/np.max(dataWO[0:L*4/5,1])*10.,tps,'k')
6 plt.plot(np.float(j*pas)*0.2+G[:,j]/np.max(G[0:L*4/5,j])*10.,tps,'r')
7 plt.show()
TypeError: slice indices must be integers or None or have an __index__ method