Konstrueerime näidisandmed kahemõõtmelise massiivina:
temp = np.arange(5.0, 60.0, 2.5)
rõhk = (22.5 + 273.15) * 101.3 / (temp + 273.15)
andmed = np.column_stack((temp, rõhk))
Lihtsaim viis sellise massiivi kuvamiseks on käsuga print(andmed)
,
mis annab tulemuseks
[[ 5. 107.6733597 ]
[ 7.5 106.714217 ]
[ 10. 105.7720113 ]
[ 12.5 104.84629792]
[ 15. 103.93664758]
[ 17.5 103.04264579]
[ 20. 102.16389221]
[ 22.5 101.3 ]
[ 25. 100.45059534]
[ 27.5 99.61531681]
[ 30. 98.79381494]
[ 32.5 97.98575168]
[ 35. 97.19079994]
[ 37.5 96.40864317]
[ 40. 95.63897493]
[ 42.5 94.8814985 ]
[ 45. 94.13592645]
[ 47.5 93.40198035]
[ 50. 92.67939038]
[ 52.5 91.96789498]
[ 55. 91.26724059]
[ 57.5 90.57718131]]
Andmetulbad on küll joondatud, aga tabelil puudub päis ja arvude täpsus/vorming on meelevaldne. Vaid mõne täiendava koodireaga saab tulemust ilustada, kui trükkida kõik read eraldi:
print('Temp. (°C) Rõhk (kPa)')
print('-' * 22)
for t, p in andmed:
print(f'{t:10.1f} {p:10.2f}')
Temp. (°C) Rõhk (kPa)
----------------------
5.0 107.67
7.5 106.71
10.0 105.77
12.5 104.85
15.0 103.94
17.5 103.04
20.0 102.16
22.5 101.30
25.0 100.45
27.5 99.62
30.0 98.79
32.5 97.99
35.0 97.19
37.5 96.41
40.0 95.64
42.5 94.88
45.0 94.14
47.5 93.40
50.0 92.68
52.5 91.97
55.0 91.27
57.5 90.58
Kui on antud eraldi andmevektorid, saab kasutada zip
-funktsiooni:
print('Temp. (°C) Rõhk (kPa)')
print('-' * 22)
for t, p in zip(temp, rõhk):
print(f'{t:10.1f} {p:10.2f}')
Kuivõrd Jupyteri märkmeraamat jookseb veebilehitsejas, on võimalik ekraanile
renderdada kõike mida erinevad veebitehnoloogiad (HTML, CSS, jne) võimaldavad.
Et me ei peaks HTML-tabelit
ise programmeerima, kasutame paketti pandas
:
import pandas as pd
from IPython.display import display
def näita_tabelina(andmed, päis, vorming):
df = pd.DataFrame(andmed, columns = päis)
df.index += 1 # muidu algavad reanumbrid 0-st
display(df.style.format(dict(zip(päis, vorming))))
Nüüd saame tabeli järgmise käsuga:
näita_tabelina(andmed, ('Temp. (°C)', 'Rõhk (kPa)'), ('{:.1f}', '{:.2f}'))