当我尝试打印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])
但是它显示:数组的索引太多 我错在哪里?
问题是 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)
所以数组只是对object
的引用的一维数组,这些对象可以是列表,但这些可以是任何东西。因此,只有一个维度可以编制索引。
如果我们省略圆括号,我们有一个包含三个元素的列表,例如:
>>> A = np.array([[1,2,3],
... [1,2,3],
... [1,2,3]])
>>> A
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
然后使用两个索引进行查询完全没有问题。