在Python中访问多个数组的单个元素

1 投票
1 回答
1660 浏览
提问于 2025-04-18 14:48

我正在使用一个函数,它返回一个包含多个数组的数组,假设叫做A。我不知道怎么访问每一个单独的元素。所以,我在考虑把A重新排列成一个由两个数组组成的矩阵,这样我就能访问它们。另一种选择是把A(可能有10的6次方这么多元素)重新排列成一个大的稀疏矩阵,但这里的问题是我同样不知道怎么做到这一点。我想强调的是,我想避免使用循环。我知道A的总长度(这里是7),但不知道每个单独数组的长度。这里有一个A的例子

A = array([[array([0, 1, 4])],
            [array([0, 1, 2, 5])],
            [array([1, 2, 3, 6])],
            [array([2, 3, 7])],
            [array([0, 4, 5, 8])],
            [array([1, 4, 5, 6, 9])],
            [array([ 2,  5,  6,  7, 10])]])   

这是我想要改变成的索引

B = (array([0,0,0,1,1,1,1,2,2,2,2,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6]),
array([0,1,4,0,1,2,5,1,2,3,6,2,3,7,0,4,5,8,1,4,5,6,9,2,5,6,7, 10]))

如果这不可能做到,你能帮我看看是否可以访问每一个单独的元素吗?比如说有没有办法让我这样做

A[4][2] = 5   

或者

 A[2][3] = 6

非常感谢你的帮助。

1 个回答

0

你的数组A是一个包含数组列表的数组。你可以把这个数组“压平”,这样就能得到一个数组的数组

A_flat = A.flatten()

现在你可以像这样访问每一个单独的数组:

>> A_flat[4][2]
5

>> A_flat[2][3]
6

撰写回答