numpy矩阵的数组索引过多

时间:2018-10-16 19:11:51

标签: python numpy

当我尝试打印ndarray中的每个条目时,我使用以下命令:

    A = np.array([[(1,2,3)],
             [1,2,3],
             [1,2,3]])

     dim = len(A)
     for i in range(dim):
         for j in range(dim):
             print(A[i,j])

但是它表明:数组的索引过多 我在哪里错了?

1 个答案:

答案 0 :(得分:1)

问题是您的numpy数组中的元组:

pwmWrite

因此,这意味着第一个子列表包含一个元素:一个三元组。由于这些列表中没有包含不同数量的元素,因此numpy将构造 1D 对象数组:

test('should call pwmWrite() and getStatus()', async () => {
  const app = {}
  const io = { emit: jest.fn() }
  const req = {
    app: {
      locals: {
        target1: { pwmWrite: jest.fn() }
        }
      }
    }
  }
  expect.assertions(1)
  expect(req.app.locals.target1.pwmWrite).toHaveBeenCalled()
  await expect(getStatus(app, io)).toHaveBeenCalled()
})

因此,该数组只是对A = np.array([[(1,2,3)], [1,2,3], [1,2,3]])的引用的一维数组,这些对象可以是列表,但是它们可以是任何东西。因此,只能索引一个一个维度。

如果省略圆括号,则会列出三个元素,例如:

>>> A
array([list([(1, 2, 3)]), list([1, 2, 3]), list([1, 2, 3])], dtype=object)

然后使用两个索引查询完全没有问题。