• 首页
• Python
• 'index 0 is out of bounds for axis 0 with size 0'是什么意思?

# 'index 0 is out of bounds for axis 0 with size 0'是什么意思? [英] What does &#39;index 0 is out of bounds for axis 0 with size 0&#39; mean?

### 问题描述

I am new to both python and numpy. I ran a code that I wrote and I am getting this message: 'index 0 is out of bounds for axis 0 with size 0' Without the context, I just want to figure out what this means.. It might be silly to ask this but what do they mean by axis 0 and size 0? index 0 means the first value in the array.. but I can't figure out what axis 0 and size 0 mean.

The 'data' is a text file with lots of numbers in two columns.

``````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
``````

### 推荐答案

`numpy` 中，索引和维度编号从 0 开始.所以 `axis 0` 表示第 1 个维度.同样在 `numpy` 中，一个维度的长度(大小)可以为 0.最简单的情况是:

In `numpy`, index and dimension numbering starts with 0. So `axis 0` means the 1st dimension. Also in `numpy` a dimension can have length (size) 0. The simplest case is:

``````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
``````

I also get it if `x = np.zeros((0,5), int)`, a 2d array with 0 rows, and 5 columns.

So someplace in your code you are creating an array with a size 0 first axis.

When asking about errors, it is expected that you tell us where the error occurs.

Also when debugging problems like this, the first thing you should do is print the `shape` (and maybe the `dtype`) of the suspected variables.

• 使用 `pandas` 的用户在将 `Series``DataFrame` 发送到 `numpy.array` 时可能会发生同样的错误代码>，如下所示:
• The same error can occur for those using `pandas`, when sending a `Series` or `DataFrame` to a `numpy.array`, as with the following:
• `pandas.Series.values` or `pandas.Series.to_numpy()` or `pandas.Series.array`
• `pandas.DataFrame.values` or `pandas.DataFrame.to_numpy()`
1. 使用 `try-except`
2. 验证数组的大小不为0
• `如果 x.size != 0:`

这篇关于'index 0 is out of bounds for axis 0 with size 0'是什么意思?的文章就介绍到这了，希望我们推荐的答案对大家有所帮助，也希望大家多多支持IT屋！