我有一个for循环,它会生成几个变量,比如a
,b
和c
。我想要
在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
非常感谢你的帮助。
答案 0 :(得分: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