1

我有一个 for 循环,它生成几个变量,比如说a,bc. 我想在 for 循环通过循环后垂直堆叠变量。这里是我想做的。(例如,假设变量只是数字(1,2,3))。

from astropy.table import Table
N1 = 3
N2 = 5
a = zeros((N2,N1))
b = zeros((N2,N1))
c = zeros((N2,N1))
for i in range(N2):    
   a[i] = range(N1)
   b[i] = range(N1)
   c[i] = range(N1)
   t  = Table([a[i], b[i], c[i]], names=('a', 'b', 'c'), meta={'name': 'first table'})

print t我得到的那一刻

 a   b   c 
--- --- ---
0.0 0.0 0.0
1.0 1.0 1.0
2.0 2.0 2.0

我想要得到的是以下内容;

 a   b   c 
--- --- ---
0.0 0.0 0.0
1.0 1.0 1.0
2.0 2.0 2.0
0.0 0.0 0.0
1.0 1.0 1.0
2.0 2.0 2.0
0.0 0.0 0.0
1.0 1.0 1.0
2.0 2.0 2.0
0.0 0.0 0.0
1.0 1.0 1.0
2.0 2.0 2.0
0.0 0.0 0.0
1.0 1.0 1.0
2.0 2.0 2.0

非常感谢您的帮助。

4

1 回答 1

1

例如,如果您想要重复 n=5 次的行数,您只需要使用vstack,类似于numpy.vstack以下内容:

>>>from astropy.table import vstack
>>>t1=vstack([t,t,t,t,t])
>>>print t1

 a   b   c 
--- --- ---
0.0 0.0 0.0
1.0 1.0 1.0
2.0 2.0 2.0
0.0 0.0 0.0
1.0 1.0 1.0
2.0 2.0 2.0
0.0 0.0 0.0
1.0 1.0 1.0
2.0 2.0 2.0
0.0 0.0 0.0
1.0 1.0 1.0
2.0 2.0 2.0
0.0 0.0 0.0
1.0 1.0 1.0
2.0 2.0 2.0
于 2014-07-30T22:16:46.020 回答