Ошибка графика в индексе среза, работает на python 2.7, а не на 3.0 - PullRequest
0 голосов
/ 12 января 2020

В python 2.7 этот скрипт работает нормально, используя его в python 3 в Notebook, я получаю сообщение об ошибке.

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                                 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

Спасибо

1 Ответ

0 голосов
/ 12 января 2020

Он говорит вам, в чем ошибка. Вы не можете иметь плавающие выражения в выражении (G[...]) для массивов. В Python 2 L*4/5 возвращает целое число (для целого числа L), а в Python 3 возвращает число с плавающей запятой. Используйте L*4//5 для принудительного целочисленного деления.

...