Zero Shot

master
DotNaos 2024-10-03 11:40:50 +02:00
commit 4d0472f136
4 changed files with 199 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
# Python
**/Lib
**/Scripts
**/etc
**/pyvenv.cfg
**/share

16
Task.md Normal file
View File

@ -0,0 +1,16 @@
# Mini Hackathon: Data Visualizer & Analyzer
Aufgabe: "List Data Visualizer & Analyzer” -> 70 Minuten
Nutze LLMs und erstelle eine kleine Webanwendung (zum Beispiel mit Streamlit oder einem anderen
Framework deiner Wahl), die eine Liste von numerischen Daten vom Benutzer akzeptiert und folgende
Funktionen bereitstellt:
1. Statistische Analyse: Zeige grundlegende Statistiken der eingegebenen Daten (Durchschnitt, Median,
Standardabweichung, etc.).
1. Visualisierung: Erstelle mindestens zwei verschiedene Diagramme, die die Daten visualisieren (z.B.
Histogramm, Boxplot, etc.).
1. Interaktive Filter: Ermögliche es dem Benutzer, Filter auf die Daten anzuwenden (z.B. Werte über/unter
einem bestimmten Schwellenwert anzeigen).
1. Dynamische Updates: Die Visualisierungen und Analysen sollten sich dynamisch aktualisieren, wenn
der Benutzer die Liste ändert.
Bonus (für die besonders Schnellen):
• Implementiere eine Funktion, die automatisch Ausreißer in den Daten erkennt und markiert.
• Erweitere die Anwendung um die Möglichkeit, Daten aus einer CSV-Datei hochzuladen und zu analysieren.

76
backend/app.py Normal file
View File

@ -0,0 +1,76 @@
import streamlit as st
import pandas as pd
import numpy as np
import plotly.express as px
st.title("List Data Visualizer & Analyzer")
# Seitenleiste für die Dateneingabe
st.sidebar.header("Dateneingabe")
datenquelle = st.sidebar.radio("Datenquelle auswählen:", ("Manuelle Eingabe", "CSV-Datei hochladen"))
if datenquelle == "Manuelle Eingabe":
dateneingabe = st.sidebar.text_area("Gib Zahlen ein, getrennt durch Kommas:", value="1,2,3,4,5")
try:
datenliste = [float(x.strip()) for x in dateneingabe.split(",") if x.strip()]
df = pd.DataFrame(datenliste, columns=['Werte'])
except ValueError:
st.error("Bitte gib eine gültige Liste von Zahlen ein.")
st.stop()
elif datenquelle == "CSV-Datei hochladen":
hochgeladene_datei = st.sidebar.file_uploader("Wähle eine CSV-Datei aus", type="csv")
if hochgeladene_datei is not None:
df = pd.read_csv(hochgeladene_datei)
# Annahme: Die Daten stehen in der ersten Spalte
df = df.iloc[:, [0]]
df.columns = ['Werte']
else:
st.warning("Bitte lade eine CSV-Datei hoch.")
st.stop()
# Interaktive Filter
st.sidebar.header("Datenfilter")
min_wert = float(df['Werte'].min())
max_wert = float(df['Werte'].max())
filterbereich = st.sidebar.slider('Wertebereich auswählen:', min_wert, max_wert, (min_wert, max_wert))
gefilterter_df = df[(df['Werte'] >= filterbereich[0]) & (df['Werte'] <= filterbereich[1])]
# Statistische Analyse
st.header("Statistische Analyse")
st.write(f"**Anzahl:** {gefilterter_df['Werte'].count()}")
st.write(f"**Mittelwert:** {gefilterter_df['Werte'].mean()}")
st.write(f"**Median:** {gefilterter_df['Werte'].median()}")
st.write(f"**Standardabweichung:** {gefilterter_df['Werte'].std()}")
# Ausreißererkennung (mithilfe der 1.5*IQR-Regel)
Q1 = gefilterter_df['Werte'].quantile(0.25)
Q3 = gefilterter_df['Werte'].quantile(0.75)
IQR = Q3 - Q1
untere_grenze = Q1 - 1.5 * IQR
obere_grenze = Q3 + 1.5 * IQR
ausreisser = gefilterter_df[(gefilterter_df['Werte'] < untere_grenze) | (gefilterter_df['Werte'] > obere_grenze)]
# Visualisierungen
st.header("Datenvisualisierungen")
# Histogramm
st.subheader("Histogramm")
fig1 = px.histogram(gefilterter_df, x='Werte', nbins=20, title='Histogramm')
st.plotly_chart(fig1)
# Boxplot
st.subheader("Boxplot")
fig2 = px.box(gefilterter_df, y='Werte', points="all", title='Boxplot mit Ausreißern')
st.plotly_chart(fig2)
# Ausreißer anzeigen
if not ausreisser.empty:
st.subheader("Erkannte Ausreißer")
st.write(ausreisser)
else:
st.subheader("Keine Ausreißer erkannt")
# Gefilterte Daten anzeigen
st.header("Gefilterte Daten")
st.write(gefilterter_df)

View File

@ -0,0 +1,101 @@
x,y
0.0,2.5777634568920975
0.10101010101010101,2.7797836589122995
0.20202020202020202,2.9818038609325015
0.30303030303030304,3.1838240629527035
0.40404040404040403,3.3858442649729055
0.5050505050505051,3.587864466993108
0.6060606060606061,3.7898846690133094
0.7070707070707071,3.991904871033512
0.8080808080808081,4.193925073053713
0.9090909090909091,4.395945275073916
1.0101010101010102,4.597965477094118
1.1111111111111112,4.79998567911432
1.2121212121212122,5.002005881134521
1.3131313131313131,5.204026083154724
1.4141414141414141,5.406046285174926
1.5151515151515151,5.608066487195128
1.6161616161616161,5.810086689215329
1.7171717171717171,6.012106891235532
1.8181818181818181,6.214127093255734
1.9191919191919191,6.416147295275936
2.0202020202020203,6.618167497296138
2.121212121212121,6.82018769931634
2.2222222222222223,7.022207901336542
2.323232323232323,7.224228103356744
2.4242424242424243,7.426248305376946
2.525252525252525,7.628268507397148
2.6262626262626263,7.83028870941735
2.727272727272727,8.03230891143755
2.8282828282828283,8.234329113457754
2.929292929292929,8.436349315477955
3.0303030303030303,8.638369517498157
3.131313131313131,8.84038971951836
3.2323232323232323,9.04240992153856
3.3333333333333335,9.244430123558764
3.4343434343434343,9.446450325578965
3.5353535353535355,9.648470527599168
3.6363636363636362,9.85049072961937
3.7373737373737375,10.05251093163957
3.8383838383838382,10.254531133659773
3.9393939393939394,10.456551335679976
4.040404040404041,10.658571537700178
4.141414141414141,10.860591739720379
4.242424242424242,11.062611941740581
4.343434343434343,11.264632143760783
4.444444444444445,11.466652345780986
4.545454545454545,11.668672547801187
4.646464646464646,11.870692749821389
4.747474747474747,12.072712951841591
4.848484848484849,12.274733153861794
4.94949494949495,12.476753355881996
5.05050505050505,12.678773557902197
5.151515151515151,12.8807937599224
5.252525252525253,13.082813961942602
5.353535353535354,13.284834163962804
5.454545454545454,13.486854365983005
5.555555555555555,13.688874568003207
5.656565656565657,13.89089477002341
5.757575757575758,14.092914972043612
5.858585858585858,14.294935174063813
5.959595959595959,14.496955376084015
6.0606060606060606,14.698975578104218
6.161616161616162,14.90099578012442
6.262626262626262,15.10301598214462
6.363636363636363,15.305036184164823
6.4646464646464645,15.507056386185026
6.565656565656566,15.709076588205228
6.666666666666667,15.911096790225432
6.767676767676767,16.113116992245633
6.8686868686868685,16.315137194265834
6.96969696969697,16.517157396286034
7.070707070707071,16.71917759830624
7.171717171717171,16.92119780032644
7.2727272727272725,17.123218002346643
7.373737373737374,17.325238204366844
7.474747474747475,17.527258406387045
7.575757575757575,17.729278608407245
7.6767676767676765,17.93129881042745
7.777777777777778,18.133319012447654
7.878787878787879,18.335339214467854
7.979797979797979,18.537359416488055
8.080808080808081,18.73937961850826
8.181818181818182,18.94139982052846
8.282828282828282,19.14342002254866
8.383838383838384,19.345440224568865
8.484848484848484,19.547460426589065
8.585858585858587,19.74948062860927
8.686868686868687,19.95150083062947
8.787878787878787,20.15352103264967
8.88888888888889,20.355541234669875
8.98989898989899,20.557561436690076
9.09090909090909,20.759581638710277
9.191919191919192,20.96160184073048
9.292929292929292,21.16362204275068
9.393939393939394,21.365642244770886
9.494949494949495,21.567662446791086
9.595959595959595,21.769682648811287
9.696969696969697,21.97170285083149
9.797979797979798,22.17372305285169
9.8989898989899,22.375743254871896
10.0,22.577763456892097
1 x y
2 0.0 2.5777634568920975
3 0.10101010101010101 2.7797836589122995
4 0.20202020202020202 2.9818038609325015
5 0.30303030303030304 3.1838240629527035
6 0.40404040404040403 3.3858442649729055
7 0.5050505050505051 3.587864466993108
8 0.6060606060606061 3.7898846690133094
9 0.7070707070707071 3.991904871033512
10 0.8080808080808081 4.193925073053713
11 0.9090909090909091 4.395945275073916
12 1.0101010101010102 4.597965477094118
13 1.1111111111111112 4.79998567911432
14 1.2121212121212122 5.002005881134521
15 1.3131313131313131 5.204026083154724
16 1.4141414141414141 5.406046285174926
17 1.5151515151515151 5.608066487195128
18 1.6161616161616161 5.810086689215329
19 1.7171717171717171 6.012106891235532
20 1.8181818181818181 6.214127093255734
21 1.9191919191919191 6.416147295275936
22 2.0202020202020203 6.618167497296138
23 2.121212121212121 6.82018769931634
24 2.2222222222222223 7.022207901336542
25 2.323232323232323 7.224228103356744
26 2.4242424242424243 7.426248305376946
27 2.525252525252525 7.628268507397148
28 2.6262626262626263 7.83028870941735
29 2.727272727272727 8.03230891143755
30 2.8282828282828283 8.234329113457754
31 2.929292929292929 8.436349315477955
32 3.0303030303030303 8.638369517498157
33 3.131313131313131 8.84038971951836
34 3.2323232323232323 9.04240992153856
35 3.3333333333333335 9.244430123558764
36 3.4343434343434343 9.446450325578965
37 3.5353535353535355 9.648470527599168
38 3.6363636363636362 9.85049072961937
39 3.7373737373737375 10.05251093163957
40 3.8383838383838382 10.254531133659773
41 3.9393939393939394 10.456551335679976
42 4.040404040404041 10.658571537700178
43 4.141414141414141 10.860591739720379
44 4.242424242424242 11.062611941740581
45 4.343434343434343 11.264632143760783
46 4.444444444444445 11.466652345780986
47 4.545454545454545 11.668672547801187
48 4.646464646464646 11.870692749821389
49 4.747474747474747 12.072712951841591
50 4.848484848484849 12.274733153861794
51 4.94949494949495 12.476753355881996
52 5.05050505050505 12.678773557902197
53 5.151515151515151 12.8807937599224
54 5.252525252525253 13.082813961942602
55 5.353535353535354 13.284834163962804
56 5.454545454545454 13.486854365983005
57 5.555555555555555 13.688874568003207
58 5.656565656565657 13.89089477002341
59 5.757575757575758 14.092914972043612
60 5.858585858585858 14.294935174063813
61 5.959595959595959 14.496955376084015
62 6.0606060606060606 14.698975578104218
63 6.161616161616162 14.90099578012442
64 6.262626262626262 15.10301598214462
65 6.363636363636363 15.305036184164823
66 6.4646464646464645 15.507056386185026
67 6.565656565656566 15.709076588205228
68 6.666666666666667 15.911096790225432
69 6.767676767676767 16.113116992245633
70 6.8686868686868685 16.315137194265834
71 6.96969696969697 16.517157396286034
72 7.070707070707071 16.71917759830624
73 7.171717171717171 16.92119780032644
74 7.2727272727272725 17.123218002346643
75 7.373737373737374 17.325238204366844
76 7.474747474747475 17.527258406387045
77 7.575757575757575 17.729278608407245
78 7.6767676767676765 17.93129881042745
79 7.777777777777778 18.133319012447654
80 7.878787878787879 18.335339214467854
81 7.979797979797979 18.537359416488055
82 8.080808080808081 18.73937961850826
83 8.181818181818182 18.94139982052846
84 8.282828282828282 19.14342002254866
85 8.383838383838384 19.345440224568865
86 8.484848484848484 19.547460426589065
87 8.585858585858587 19.74948062860927
88 8.686868686868687 19.95150083062947
89 8.787878787878787 20.15352103264967
90 8.88888888888889 20.355541234669875
91 8.98989898989899 20.557561436690076
92 9.09090909090909 20.759581638710277
93 9.191919191919192 20.96160184073048
94 9.292929292929292 21.16362204275068
95 9.393939393939394 21.365642244770886
96 9.494949494949495 21.567662446791086
97 9.595959595959595 21.769682648811287
98 9.696969696969697 21.97170285083149
99 9.797979797979798 22.17372305285169
100 9.8989898989899 22.375743254871896
101 10.0 22.577763456892097