2017-01-05 10 views
1

私はPythonとNumpyの両方に新しいです。 私が書いたコードを実行しましたが、このメッセージが表示されています: 'インデックス0は0の軸で0の範囲外です' コンテキストがなければ、これが何を意味するのかを知りたいだけです。これを尋ねるのに、軸0とサイズ0はどういう意味ですか?インデックス0は配列の最初の値を意味しますが、私は軸0とサイズ0の意味を理解できません。'0の軸0のインデックス0は範囲外です'はどういう意味ですか?

ありがとうございます! 'データ'は2つの列に数字の多いテキストファイルです。 numpy

x = np.linspace(1735.0,1775.0,100) 
column1 = (data[0,0:-1]+data[0,1:])/2.0 
column2 = data[1,1:] 
x_column1 = np.zeros(x.size+2) 
x_column1[1:-1] = x 
x_column1[0] = x[0]+x[0]-x[1] 
x_column1[-1] = x[-1]+x[-1]-x[-2] 
experiment = np.zeros_like(x) 
for i in range(np.size(x_edges)-2): 
    indexes = np.flatnonzero(np.logical_and((column1>=x_column1[i]),(column1<x_column1[i+1]))) 
    temp_column2 = column2[indexes] 
    temp_column2[0] -= column2[indexes[0]]*(x_column1[i]-column1[indexes[0]-1])/(column1[indexes[0]]-column1[indexes[0]-1]) 
    temp_column2[-1] -= column2[indexes[-1]]*(column1[indexes[-1]+1]-x_column1[i+1])/(column1[indexes[-1]+1]-column1[indexes[-1]]) 
    experiment[i] = np.sum(temp_column2) 
return experiment 
+3

私たちにコードを示してください – depperm

+0

これは関連しているかもしれません。 http://stackoverflow.com/questions/29214017/index-0-is-out-of-bounds-for-axis-0-with-size-0 –

+0

バックトレースを持つことは実用的かもしれません... –

答えて

5

、指標とディメンションの番号は0から始まるのでaxis 0は、第一の寸法を意味します。 numpyの寸法は、長さ(サイズ)0を有することができ、また、最も単純な場合は、次のとおり

In [435]: x = np.zeros((0,), int) 
In [436]: x 
Out[436]: array([], dtype=int32) 
In [437]: x[0] 
... 
IndexError: index 0 is out of bounds for axis 0 with size 0 

x = np.zeros((0,5), int)場合、私はまた、0行、5列の2次元配列をそれを得ます。

コードのどこかで、サイズ0の第1軸の配列を作成しています。

エラーについて質問するときは、エラーの発生場所を教えてください。

また、このような問題をデバッグする場合、最初に行うべきことは、疑わしい変数のshape(おそらくdtype)を印刷することです。

関連する問題