在Python中访问多个数组的单个元素
我正在使用一个函数,它返回一个包含多个数组的数组,假设叫做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