2014-12-01 4 views
0

나는 시간, 반경 및 각도의 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] 

, 수도, 목록 값의 수백이 포함되어 있습니다.

+0

'테이블 만들기'란 데이터를 테이블로 인쇄한다는 뜻입니까? –

+0

입력 목록의 예는 무엇입니까? – Marcin

+0

https://pypi.python.org/pypi/tabulate가 도움이 될 수 있습니다. – mgilson

답변

1

나는이 도움이 될 생각 :

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]] 
+0

과학 대신 십진수 표기법으로 값을 만드는 방법이 있습니까? – GlassSeaHorse

+0

@ jakeowen 나는 anwser를 개정했다. – Marcin

+0

아름다운! 당신이 마지막으로 한 가지 감사 : 내가 할 수있는 방법 출력이 나에게 제공하지 않는 ... >> [[0 1 0] [0.001001001 1.0009990445 0.5086090132] [0.002002002 1.001994175 0.7621552152] ..., [0.997997998 0.3566079907 218.4123978576] [0.998998999 0.3572850501 220.4065478177] [1. 0.3579791659 222.3929720262] – GlassSeaHorse

1

당신은 이런 식으로에 대한 우편 번호를 사용할 수 있습니다

>>> 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)] 
+0

각 목록에 실제로 수백 개의 값이 포함되어 있음을 명확히하기 위해 편집 한 것뿐입니다. – GlassSeaHorse

+0

글쎄, 어쨌든 작동 할거야, 난 그냥 시간, 반지름, 각도의 예를 사용했다. 그들은 어떤 길이라도 가질 수있다. – ytiq

+0

이것은 좋은 실용적인 접근법으로 보인다. – vks

0

한 가지 방법은 이후

>>> 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 
을 시도 할 수

설명서는 찾을 수 있습니다 here

0

그것은 당신의 소원을 이해하는 것이 매우 어렵습니다, 아마이 도움이 될 것입니다?

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']) 

?

관련 문제