Ответ 1
N=np.floor(np.divide(l,delta))
...
for j in range(N[i]/2):
N[i]/2
будет float64
, но range()
ожидает целое число. Просто оставьте вызов
for j in range(int(N[i]/2)):
import numpy as np
for i in range(len(x)):
if (np.floor(N[i]/2)==N[i]/2):
for j in range(N[i]/2):
pxd[i,j]=x[i]-(delta*j)*np.sin(s[i]*np.pi/180)
pyd[i,j]=y[i]-(delta*j)*np.cos(s[i]*np.pi/180)
else:
for j in range((N[i]-1)/2):
pxd[i,j]=x[i]-(delta*j)*np.sin(s[i]*np.pi/180)
pyd[i,j]=y[i]-(delta*j)*np.cos(s[i]*np.pi/180)
Есть ли у кого-нибудь идея решить эту проблему? Выполнение этих кодов успешно?
Спасибо,
Джереми
N=np.floor(np.divide(l,delta))
...
for j in range(N[i]/2):
N[i]/2
будет float64
, но range()
ожидает целое число. Просто оставьте вызов
for j in range(int(N[i]/2)):
Я пришел сюда с той же ошибкой, но с другим происхождением.
Это вызвано неподдерживаемым индексом с плавающей запятой в 1.12.0 и более поздними версиями, даже если код должен считаться допустимым.
Ожидается тип int
, а не np.float64
Решение: попробуйте установить numpy 1.11.0
sudo pip install -U numpy==1.11.0.
У меня такая же проблема в этой строке моего скрипта
samples = np.append(np.zeros(np.floor(frameSize/2.0)), sig)
Я пытался, как вы сказали:
samples = np.append(np.zeros(np.floor(int(frameSize/2.0))),sig)
Также я попробовал это:
samples = np.append(np.zeros(int(frameSize/2.0)),sig)
Но у меня все та же ошибка сообщения. Numpy версия, которую я имею, является 1.15.4. Можете ли вы помочь мне?