diff --git a/formulas/Block 2.md b/formulas/Block 2.md index 50a92d5..90c2e77 100644 --- a/formulas/Block 2.md +++ b/formulas/Block 2.md @@ -1,22 +1,70 @@ -Kleinere Aufgaben zur Programmierung mit Numpy und Pandas; Zuordnungen, Wahr/Falsch, -Codeanpassungen. - -Data-Wrangling: Importieren, Bereinigen und Transformieren von Daten am Beispiel von Phyton, Plots - -Vertiefung Numpy und Pandas Beispielanwendungen: Umgang mit realistischen Datensätzen, Zeitreihen, Ausblick MLVerfahren - -Arten und Anwendungsbereiche verschiedener NoSQLDatenbanken, CAP-Theorem, Skalierung von NoSQLDatenbanken, Sharding, Übungen - ## CAP-Theorem - • **Konsistenz (Consistency):** Alle Knoten zeigen zur gleichen Zeit die gleichen Daten an. - **Verfügbarkeit (Availability):** Jeder Anfrage wird garantiert eine Antwort geliefert – auch wenn sie nicht den aktuellsten Stand widerspiegelt. - **Partitionstoleranz (Partition Tolerance):** Das System funktioniert weiter, auch wenn Teile des Netzwerks ausfallen oder nicht miteinander kommunizieren können. -- **CA (Konsistenz + Verfügbarkeit):** - Funktioniert nur ohne Netzwerkausfall. - Beispiel: Einzelner MySQL-Server. -- **CP (Konsistenz + Partitionstoleranz):** - Bleibt bei Ausfall konsistent, aber nicht immer erreichbar. - Beispiel: HBase, MongoDB (strikte Konsistenz). -- **AP (Verfügbarkeit + Partitionstoleranz):** - Immer erreichbar, aber Daten können kurz inkonsistent sein. - Beispiel: Cassandra, DynamoDB. \ No newline at end of file +- **CA (Konsistenz + Verfügbarkeit):**  +    Funktioniert nur ohne Netzwerkausfall.  +    Beispiel: Einzelner MySQL-Server. +- **CP (Konsistenz + Partitionstoleranz):**  +    Bleibt bei Ausfall konsistent, aber nicht immer erreichbar.  +    Beispiel: HBase, MongoDB (strikte Konsistenz). +- **AP (Verfügbarkeit + Partitionstoleranz):**  +    Immer erreichbar, aber Daten können kurz inkonsistent sein.  +    Beispiel: Cassandra, DynamoDB. +```python +pd.DataFrame(data: dict[str, Any]) -> DataFrame  # Erstellt DataFrame aus dict +pd.read_csv(filepath_or_buffer: str, index_col: str | None = None, ...) -> DataFrame  # CSV/URL einlesen +np.array(obj: Iterable[Any], dtype: type | None = None) -> ndarray  # Array aus Werten +np.nan: float  # Not a Number (fehlender Wert) +np.arange(stop: int) -> ndarray  # Array von 0 bis stop-1 +np.random.randn(*shape: int) -> ndarray  # Zufallszahlen (Normalverteilung) +np.sin(x: float | ndarray), np.cos(x: float | ndarray) -> float | ndarray  # Sinus/Kosinus +pd.date_range(start: str, periods: int, freq: str) -> DatetimeIndex  # Datumsreihe +pd.cut(x: Series, bins: list[float], labels: list[str] | None = None) -> Categorical  # Werte in Intervalle +pd.get_dummies(df: DataFrame, columns: list[str] | None = None) -> DataFrame  # One-Hot-Encoding +DataFrame.info() -> None  # Übersicht zu DataFrame +DataFrame.dtypes -> Series  # Spaltentypen +DataFrame.head(n: int = 5) -> DataFrame  # Erste n Zeilen +DataFrame.tail(n: int = 5) -> DataFrame  # Letzte n Zeilen +DataFrame.columns -> Index  # Spaltennamen +DataFrame.shape -> tuple[int, int]  # Form (Zeilen, Spalten) +DataFrame.to_numpy() -> ndarray  # Als Numpy-Array +DataFrame.set_index(keys: str | list[str]) -> DataFrame  # Setzt Index +DataFrame.sort_index() -> DataFrame  # Sortiert nach Index +DataFrame.copy() -> DataFrame  # Kopie erstellen +DataFrame.describe() -> DataFrame  # Statistik +DataFrame.count() -> Series  # Anzahl Werte pro Spalte +DataFrame.min()/max()/mean()/std()/var() -> Series | float  # Statistische Werte +DataFrame.cumsum() -> DataFrame  # Kumulierte Summe +DataFrame.drop(labels: str | list[str], axis: int = 0) -> DataFrame  # Entfernt Zeilen/Spalten +DataFrame.dropna() -> DataFrame  # Entfernt Zeilen mit NaN +DataFrame.fillna(value: Any) -> DataFrame  # Füllt NaN +DataFrame.interpolate() -> DataFrame  # Interpoliert NaN +DataFrame.combine_first(other: DataFrame) -> DataFrame  # Füllt NaN aus anderem DF +DataFrame.sample(n: int | None = None, frac: float | None = None, axis: int = 0) -> DataFrame  # Zufallsstichprobe +DataFrame.loc[...] / .iloc[...] -> DataFrame | Series | scalar  # Zugriff per Label/Position +DataFrame.groupby(by: str | list[str] | Callable) -> GroupBy  # Gruppiert nach Kriterium +DataFrame.melt(id_vars: str | list[str]) -> DataFrame  # Spalten zu Zeilen +DataFrame.pivot(index: str, columns: str) -> DataFrame  # Breite Tabelle +DataFrame.pivot_table(values: str, index: str, columns: str, aggfunc: str | Callable) -> DataFrame  # Pivot-Tabelle +DataFrame.replace(to_replace: Any, value: Any) -> DataFrame  # Werte ersetzen +DataFrame.plot(...), .plot.line(...), .plot.scatter(...), .boxplot(...) -> Axes  # Plotten +Series.value_counts() -> Series  # Zählt eindeutige Werte +Series.count() -> int  # Anzahl Werte +Series.map(func: Callable) -> Series  # Wendet Funktion an +Series.str.lower() -> Series  # Kleinbuchstaben +Series.str.contains(pat: str) -> Series  # Stringsuche +Series.plot.hist(bins: int) -> Axes  # Histogramm +GroupBy.agg(func: str | Callable) -> DataFrame  # Aggregation auf Gruppen +GroupBy.sum()/min()/max()/describe() -> DataFrame  # Statistiken auf Gruppen +GroupBy.__iter__() -> Iterator  # Über Gruppen iterieren +plt.axvline(x: float, c: str | None = None) -> None  # Vertikale Linie +plt.cm.Blues(x: float) -> tuple  # Farbe aus Colormap +Axes.axhline(y: float, ...) -> None  # Horizontale Linie +Axes.set_xticks(ticks: list[float]) -> None  # X-Ticks setzen +Axes.set_ylabel(label: str), Axes.set_xlabel(label: str) -> None  # Achsenbeschriftung +train_test_split(X: ndarray | DataFrame, y: ndarray | Series, train_size: float = ...) -> tuple  # Split in Train/Test +LogisticRegression().fit(X: ndarray | DataFrame, y: ndarray | Series) -> LogisticRegression  # Modell trainieren +LogisticRegression().score(X: ndarray | DataFrame, y: ndarray | Series) -> float  # Modellgüte +LogisticRegression().predict_proba(X: ndarray | DataFrame) -> ndarray  # Vorhersagewahrscheinlichkeit Beispiel: Cassandra, DynamoDB. +``` diff --git a/formulas/Block3_short.md b/formulas/Block3.md similarity index 98% rename from formulas/Block3_short.md rename to formulas/Block3.md index dddc252..6516112 100644 --- a/formulas/Block3_short.md +++ b/formulas/Block3.md @@ -6,14 +6,14 @@ Sonderzeichen (`*+?{}[]\|()`) mit `\` escapen. * **Logik & Gruppen:** `()` (Gruppe), `(?P...)` (benannte Gruppe), `|` (ODER). * **Position:** `^` (Anfang), `$` (Ende), `\b` (Wortgrenze). **Beispiel**: -```python +```regex ^(?P\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2})\s\[(?PINFO|WARN|ERROR)\]\s\(user:\s'(?P[\w\.-]+@[\w\.-]+)'\)\s"(?P.*?)"$ ```` ## XPath & JSONPath * **XPath (XML):** Navigation mit `/` (Kind), `//` (Nachfahre), `.` (aktuell), `..` (Eltern). Filtern mit `[...]`, z.B. `[@id='x']` (Attribut) oder `[1]` (Position). Werte mit `@attribut` oder `text()`. * **JSONPath (JSON):** Start mit `$`. Navigation mit `.` oder `['key']`. `..` (rekursiv), `[*]` (alle Array-Elemente). Filtern mit `[?(@...)]`, wobei `@` das aktuelle Element ist. **Beispiel**: -```python +```xml //course[@id='cds104']/lecturer[@type='external' and units > 5]/name/text() ``` ```json