Python / Numpy - 使用变量从二维数组中提取二维子数组

时间:2011-10-24 12:32:11

标签: python variables numpy arrays

好的,所以我有一个二维数组,其形状(23025,1000),它被称为'allfiles'。

我需要一次遍历数组50列并将它们提取到子数组进行操作。问题是当我使用下面的代码处理数组时,它似乎没有识别变量(a和b)。我现在的代码如下所示。

    q = 50
    a = np.shape(allfiles)[1] # a = 1000
    for i in range(a):
        b = a + q
        data = allfiles[:,a:b]

当我用数字替换变量时,即......

    data = allfiles[:,30:80]

似乎有效。所以,我的问题是 - 有没有办法可以将变量传递给数组索引?如果没有,我有更好的方法可以使用变量创建一个子阵列吗?

我试图在堆栈溢出时发现这个问题没有运气,但我确定我不是第一个遇到这个问题的人?

干杯队员, 摩根

1 个答案:

答案 0 :(得分:2)

您从循环中获得i但不使用它。

q = 50

for start in xrange(0, allfiles.shape[1], q):
    data = allfiles[:,start:start+q]
    ...