numpy矩阵的数组索引太多

2024-04-26 18:43:44 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图打印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])

但是它显示:数组的索引太多 我哪里做错了?你知道吗


Tags: 方法inforlennp条目range数组
1条回答
网友
1楼 · 发布于 2024-04-26 18:43:44

问题是numpy数组中的元组:

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

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

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

所以这个数组只是一个1D数组,引用object,这些对象可以是列表,但是它们可以是任何东西。因此,只有一个维度可以被索引。你知道吗

如果省略圆括号,我们会得到一个包含三个元素的列表,如:

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

然后用两个索引进行查询就完全没有问题了。你知道吗

相关问题 更多 >