web-dev-qa-db-ja.com

python "TypeError: 'numpy.float64'オブジェクトは整数として解釈できません"

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)     

誰もこの問題を解決する考えを持っていますか?これらのコードを正常に実行しますか?

おかげで、
ジェレミー

14
user3700852
_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)):
_
13
Pavel

私は同じエラーでここに来ましたが、1つは異なる起源のものです。

コードが有効と見なされる場合でも、1.12.0以降のnumpyバージョンでサポートされていないfloatインデックスが原因です。

np.float64ではなく、int型が必要です

解決策:numpy 1.11.0をインストールしてください

Sudo pip install -U numpy==1.11.0.
4
mrk