2017-12-15 1 views
0

私はPython 3.6を使用しています。整数スカラー配列のみスカラーインデックスに変換できます

私がやろうとしています:

import numpy as np 

def run_11(x): 
return x+1 

kk = np.arange(1, 17) 

for i in range (kk): 
    ind = run_11(i) 
    print (i) 
    print (ind) 

私はこのエラーを取得する:

TypeError: only integer scalar arrays can be converted to a scalar index

なぜ、どのようにそれを解決するために、私は理解できませんでした。何かアドバイスは大いに利用range(kk.shape[0])

+0

'range(kk)'コールが必要ですか? 'for'ループで' kk'を使うことはできませんか? – Gary02127

答えて

0

をいただければ幸いです。

for i in range(kk.shape[0]): 
    ind = run_11(i) 
    print (i) 
    print (ind) 

range()は、引数ではなく、numpyの配列として整数を取ります。 .shape[0]は、配列の長さである16を返します。

それを行うのは非常に短く、次のようになります。

res = run_11(kk) 

これをさらに高速化し、NumPysベクトル化能力を利用しています。

関連する問題