访问几个数组的数组的各个元素,Python

时间:2014-07-25 18:48:32

标签: python arrays numpy scipy

我正在使用一个函数返回几个数组的数组,比如说A.我不知道如何访问每个单独的元素。因此,我想将A重新排列为两个数组的矩阵,以便我可以访问它们。另一种选择是重新排列A(可以是10 ** 6的顺序)到一个大的稀疏矩阵,这里的问题又是我不知道如何实现这一点。我需要指出,我想避免 Forloop 。我知道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 :(得分:0)

您的阵列 A 是包含数组列表的数组。您可以将数组展平以获得数组

A_flat = A.flatten()

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

>> A_flat[4][2]
5

>> A_flat[2][3]
6