【问题标题】:index 0 is out of bounds for axis 0 with size 0对于大小为 0 的轴 0,索引 0 超出范围
【发布时间】:2015-05-26 15:58:15
【问题描述】:

我正在用从高斯分布中提取的值填充两个数组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

有人可以解释为什么以及如何解决它吗?

【问题讨论】:

  • n的值是多少?
  • @Cyber​​ n = 32,但我可以更改它
  • 值为n = 32 我无法重现您显示的错误。

标签: python arrays


【解决方案1】:

这是因为关闭列中的 NAN 值使用 np.isfinite。 例如:

btt_ohlc[np.isfinite(btt_ohlc['Close'])]

【讨论】:

    【解决方案2】:

    其实你最好用:

    field_in_k_space_REAL.loc[index] = 0.0
    

    代替:

    field_in_k_space_REAL[index] = 0.0
    

    【讨论】:

      【解决方案3】:

      我的猜测是数组field_in_k_space_REAL 实际上的长度为0,很可能是因为您在代码中进一步设置了n = 0(您可能在循环中使用n 吗?)。当我直接初始化一个长度为0的数组时,我可以重现错误。

      【讨论】:

        猜你喜欢
        • 2018-02-12
        • 1970-01-01
        • 2020-04-24
        • 1970-01-01
        • 2022-01-13
        • 2019-04-01
        • 2015-10-13
        • 2019-10-21
        • 2021-08-25
        相关资源
        最近更新 更多