问题描述
我是python和numpy的新手。
我运行了我编写的代码,并且收到以下消息:
'索引0超出了轴0的大小为0的范围'
如果没有上下文,我只想弄清楚这意味着什么。问这个问题可能很愚蠢,但是它们对于轴0和尺寸0的含义是什么?索引0表示数组中的第一个值。.但我无法弄清楚轴0和尺寸0的含义。
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开头。因此轴0
表示第1个men门sion。同样在 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
如果 x = np.zeros((0,5),int)
,一个具有0行和5列的2d数组。
I also get it if x = np.zeros((0,5), int)
, a 2d array with 0 rows, and 5 columns.
因此,在代码中的某个地方,您将创建一个第一轴大小为0的数组。
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.
此外,在调试此类问题时,您应该做的第一件事就是打印 shape
(也许 dtype
)。
Also when debugging problems like this, the first thing you should do is print the shape
(and maybe the dtype
) of the suspected variables.
这篇关于“索引0超出尺寸0的轴0的范围”是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!