1. ホーム
  2. python

[解決済み] インデックス0がサイズ0の軸0に対してアウトオブバウンズです。

2022-02-06 03:44:46

質問

2つの配列を埋めています。 field_in_k_space_REALfield_in_k_space_IMAGINARY をガウス分布から抽出した値で、配列を逆変換するときに実フィールドを得るために対称性に注意してください。以下はそのコードです。

field_in_k_space_REAL = zeros(n, float)
field_in_k_space_IMAGINARY = zeros(n, float)

field_in_k_space_REAL[0] = 0.0

for i in range(1, int(n/2+1)):
    field_in_k_space_REAL[i] = np.random.normal(mu, math.sqrt((1/2)*math.exp(-(2*math.pi*i*sigma/L)*(2*math.pi*i*sigma/L))))

x = range(int(n/2+1), int(n))
y = range(1, int(n/2))
zipped = zip(x, y)

for j, j2 in zipped:
    field_in_k_space_REAL[j] = field_in_k_space_REAL[j-2*j2]

field_in_k_space_IMAGINARY[0] = 0.0

for i in range(1, int(n/2)):
    field_in_k_space_IMAGINARY[i] = np.random.normal(mu, math.sqrt((1/2)*math.exp(-(2*math.pi*i*sigma/L)*(2*math.pi*i*sigma/L))))

field_in_k_space_IMAGINARY[n/2] = 0.0

for j, j2 in zipped:
    field_in_k_space_IMAGINARY[j] = - field_in_k_space_IMAGINARY[j-2*j2]

print 'field_k', field_in_k_space_REAL

しかし、次のようなエラーが出続けています。

 field_in_k_space_REAL[0] = 0.0
IndexError: index 0 is out of bounds for axis 0 with size 0

どなたか、その理由と解決方法を説明していただけませんか?

どのように解決するのですか?

私の推測では、配列 field_in_k_space_REAL は実際には長さ0です。 n = 0 を使用していますか? n をループで使用することはできますか?) 長さ0の配列を直接初期化すると、エラーが再現されるのですが。