2014-02-25 40 views
0

我有阵列的numpy的列表(二维表)中创建一个numpy的列表:如何从循环

db = [ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8, ch9, ch10, ch11, ch12, ch13, ch14, ch15, ch16] 

我想在这些阵列这样执行某些操作:

for i in db: 
    newch = (eegFilter(i)/sens)+25 

如何创建与每次循环的结果,一个新的二维列表,使新的阵列会是这个样子:

[[newch_iteration_1], [newch_iteration_2], [newch_iteration_3], ....] 
+1

列表和数组是非常不同的事情。数组列表不是一个二维列表,既不是数组列表也不是二维列表,这是一个二维数组。如果你使用NumPy,你想避免使用列表来保存或处理数字。你实际使用什么来存储你的数据? – user2357112

+0

感谢您的澄清。 python脚本从csv文件中读取数据,然后将其存储在一个2D列表中以对其进行处理。这不是最有效的方法吗?数据文件通常非常大(数百megs) –

回答

1

使用列表理解:

[((eegFilter(i)/sens)+25).reshape(1, *i.shape) for i in db] 

演示:

In [12]: db = [np.arange(10).reshape(2, 5), np.arange(12).reshape(3, 4)] 

In [13]: [(x%2).reshape(1, *x.shape) for x in db]             
Out[13]: 
[array([[[0, 1, 0, 1, 0],                   
     [1, 0, 1, 0, 1]]]),                  
array([[[0, 1, 0, 1],                   
     [0, 1, 0, 1],                    
     [0, 1, 0, 1]]])]