2010-11-30 56 views
0

的第二维度我有以下:使用izip超过numpy的阵列

for i in xrange(n): 
    label = labels[i] 
    frame = data[:, i] 
    dostuff() 

当数据是2- d numpy阵列。我想用izip来重写它。

for label, frame in izip(labels, ???): 
    dostuff() 

我该用什么来代替???才能使它工作?

+1

什么是dostuff(),即它可以在numpy ufuncs中执行 – 2010-11-30 04:31:33

+0

是否有错字?:data [:,i] – Kabie 2010-11-30 04:44:51

+0

@vincent,no不能在numpy中完成dostuff()。 – 2010-11-30 14:43:48

回答

3

如果你真的想使用izip(),你可以做这样的:

for label, frame in izip(labels, data.T): 
    dostuff() 

通常建议不使用Python的循环遍历一个NumPy的阵列,而是使用NumPy ufuncs做循环在C代码中。如何做到这一点取决于dostuff()实际上做了什么。

1

你可以使用:

??? = numpy.transpose(data) 

编辑:删除第二个版本。由于转置并不像我所设想的那样复制阵列,所以没有理由像我一样疯狂。