python - 索引 0 超出了大小为 0 的轴 0 的范围

标签 python arrays

我正在填充两个数组,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的数组时,我可以重现错误。

关于python - 索引 0 超出了大小为 0 的轴 0 的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29214017/

相关文章:

arrays - 比较两个包含自定义 Swift 对象的数组之间的数据

PHP 多维数组帮助

python - 在Python中传递函数引用

python - PyQt,Qtable 在启用排序时清除列

c - 自定义字符数组常量类型转换为 unsigned short?

java - 计算学生的 GPA

javascript - 将给定的字符串拆分为数组

python - 使用具有奇数 xml 结构的 python 抓取 xml

python - 记录 python 子进程的语法错误和未捕获的异常并将它们打印到终端

Python - 如何使用 BeautifulSoup 将一个类定位到另一个类中?