2017-01-05 17 views
1

Я новичок как в python, так и в numpy. Я запустил код, который я написал, и получаю это сообщение: 'index 0 за пределами оси 0 с размером 0' Без контекста я просто хочу понять, что это значит .. Это может быть глупо спросить об этом, но что они означают по оси 0 и размеру 0? index 0 означает первое значение в массиве. Но я не могу понять, какая ось 0 и размер 0 означают.Что означает «индекс 0 за пределами оси 0 с размером 0»?

Спасибо! «Данные» - это текстовый файл с большим количеством чисел в двух столбцах.

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

numpy В индекс и нумерация измерение начинается с 0. Таким образом, axis 0 означает 1-е измерение. Кроме того, в 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), в 2d массив с 0 строк и 5 столбцов.

Итак, в каком-то месте вашего кода вы создаете массив с первой осью 0.

При запросе об ошибках ожидается, что вы сообщите нам, где произошла ошибка.

Также при отладке таких проблем, прежде всего, нужно напечатать shape (и, возможно, dtype) предполагаемых переменных.