Python 如何从数据列表中生成表格?

Python 如何从数据列表中生成表格?,python,numpy,Python,Numpy,我有3个数据列表:时间、半径和角度。我想把这三张表列成一张表,但不知道怎么做。我希望它看起来像: time radius angle 0.0 3.1 0 0.1 3.0 3 等等。我相信我应该以某种方式制作一个数组,但不确定具体如何做。我试着用numpy.array或numpy.arange来解决这个问题,但什么都做不到 输入的一个例子可能是 print time [ 0. 0.001001 0.002002 0.00300

我有3个数据列表:时间、半径和角度。我想把这三张表列成一张表,但不知道怎么做。我希望它看起来像:

time   radius   angle
0.0    3.1      0
0.1    3.0      3
等等。我相信我应该以某种方式制作一个数组,但不确定具体如何做。我试着用numpy.array或numpy.arange来解决这个问题,但什么都做不到

输入的一个例子可能是

print time
[ 0.          0.001001    0.002002    0.003003    0.004004    0.00500501]
print radius
[ 1.          1.00099904  1.00199417  1.00298539  1.00397268  1.00495605]
print angle
[  2.54558441e-01   5.08609013e-01   7.62155215e-01   1.01520052e+00    1.26774839e+00   1.51980226e+00]

另外,为了澄清,列表包含数百个值。

您可以像这样使用Zip:

>>> time = ['time',0.0,0.1]
>>> radius=['radius',3.1,3.0]
>>> angle=['angle',0,3]
>>> list = zip(time,radius,angle)
>>> list
[('time', 'radius', 'angle'), (0.0, 3.1, 0), (0.1, 3.0, 3)]
一种方法可以是

>>> times = ['time', 0.0, 0.1]
>>> radius = ['radius', 3.1, 3.0]
>>> angles = ['angle', 0, 3]
>>> data = [times, radius, angles]
>>> data
[['time', 0.0, 0.1], ['radius', 3.1, 3.0], ['angle', 0, 3]]
>>> table = zip(*data)
>>> for row in table:
...     print row
...
('time', 'radius', 'angle')
(0.0, 3.1, 0)
(0.1, 3.0, 3)
因为,你说输入很大,你可以试试下面的方法

>>> import itertools
>>> for t,r,a in itertools.izip(times, radius, angles):
...     print t, r, a
...
time radius angle
0.0 3.1 0
0.1 3.0 3
>>> for t,r,a in itertools.izip_longest(times, radius, angles):
...     print t, r, a
...
time radius angle
0.0 3.1 0
0.1 3.0 3

可以找到文档

我认为这应该有帮助:

time_l = [0.  ,        0.001001,    0.002002 ,   0.003003,    0.004004,    0.00500501]
radious_l = [ 1.,          1.00099904 , 1.00199417  ,1.00298539 , 1.00397268,  1.00495605]
angle_l  = [  2.54558441e-01,   5.08609013e-01 ,  7.62155215e-01 ,  1.01520052e+00  ,  1.26774839e+00 ,  1.51980226e+00]



an_array = np.array([time_l, radious_l, angle_l]).T


np.set_printoptions(suppress = True, precision=3)

print(an_array)
结果:

[[ 0.     1.     0.255]
 [ 0.001  1.001  0.509]
 [ 0.002  1.002  0.762]
 [ 0.003  1.003  1.015]
 [ 0.004  1.004  1.268]
 [ 0.005  1.005  1.52 ]]
[[ 0.255  1.     0.   ]
 [ 0.509  1.001  0.001]
 [ 0.762  1.002  0.002]
 [ 1.015  1.003  0.003]
 [ 1.268  1.004  0.004]
 [ 1.52   1.005  0.005]]

很难理解你的愿望,也许这会有帮助

time_list = [0.0,0.1]
radius_list = [3.1,3.0]
angle_list = [0,3]

tbl = []
for i in range(len(time_list)):
    temp_var = {}
    temp_var['time'] = time_list[i]
    temp_var['radius'] = radius_list[i]
    temp_var['angle'] = angle_list[i]
    tbl.append(temp_var)
print tbl

print "time\tradius\tangle"
for i in range(len(tbl)):
    print "%s\t%s\t%s" % (tbl[i]['time'],tbl[i]['radius'],tbl[i]['angle'])

所谓“制表”是指将数据打印为表格?有输入列表的示例吗?可能会有帮助。@GrishaS是的,我想把数据打印成table@Marcin编辑它以包括示例刚刚编辑以澄清每个列表实际上包含数百个值,我只是给出了一个简单的示例。好吧,不管怎样,它都会起作用,我只是使用了你的时间、半径、角度示例,“他们可以有任何长度,有没有办法使数值以十进制表示而不是科学的?”杰克·欧文一世修改了anwser。太好了!谢谢,最后一件事:我怎样才能使输出不给我一个…>>[0.1.0.][0.0010010011.0009990445 0.5086090132][0.002002 1.001994175 0.76215522],[0.997997998 0.35660799072218.4123978576][0.998998999 0.3572850501 220.4065478177][1.0.3579791659 222.3929720262]@jakeowen抱歉,我不明白。您可以使用np printoption根据自己的喜好修改数组的打印。