Python:关于“numpy.ndarray”的两个问题

时间:2013-02-18 22:28:27

标签: python arrays numpy

我创建了一个值为

的numpy.ndarray

将numpy导入为np 来自numpy import nonzero

data = np.zeros((5, 5))
data
array([[ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.]])

我希望用1

更改一些值
data[0,0] = 1
data[4,4] = 1

data
array([[ 1.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  1.]])

如果我使用负值改变0,我有

data[-5,-5] = 5
data[-4,-4] = 5

>>> data
array([[ 5.,  0.,  0.,  0.,  0.],
       [ 0.,  5.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.]])

1-我不明白为什么我没有错误信息

>>> data[10,10] = 5
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
IndexError: index (10) out of range (0<=index<5) in dimension 0

2-不清楚为什么数据[-5,-5] = 5且数据[-4,-4] = 5,值5插入位置0,0和1,1

1 个答案:

答案 0 :(得分:3)

来自the documentation

  

负指数被解释为从数组末尾开始计算

这是标准的Python索引行为(在Python列表中使用等)。