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

1 投票
1 回答
5569 浏览
提问于 2025-04-17 04:53

好的,我有一个二维数组,里面有数据,大小是(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]

这样就能正常工作。所以,我的问题是——有没有办法把变量传给数组的索引?如果没有,还有没有更好的方法可以用变量来创建子数组?

我试着在Stack Overflow上找这个问题,但没有找到解决办法,不过我相信我不是第一个遇到这个问题的人。

谢谢大家,
摩根

1 个回答

2

你在循环中得到了 i,但是没有用到它。

q = 50

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

撰写回答