Sie sind hier
E-Book

Numerisches Python

Arbeiten mit NumPy, Matplotlib und Pandas

AutorBernd Klein
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2019
Seitenanzahl373 Seiten
ISBN9783446453630
FormatPDF/ePUB
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis29,99 EUR
Numerisches Python
•Grundlagen der Lösung numerischer Probleme mit Python
•Verarbeitung großer Datenmengen (»Big Data«) mit NumPy, wie sie beispielsweise im maschinellen Lernen Anwendung finden
•Zielgruppe sind Personen, die in der Wissenschaft, im Ingenieurwesen und in der Datenanalyse
tätig sind
•Datenvisualisierung mit Matplotlib
•Ideal zum Umstieg von Matlab auf Python
In diesem Buch stehen die numerischen Verfahren im Fokus, die im Gebiet »Data Science« und »Maschinelles Lernen« besonders benötigt werden. Python gehört zu den wichtigsten und am häufigsten benutzten Sprachen in diesem Gebiet und wird in Kombination mit seinen Modulen NumPy, SciPy, Matplotlib und Pandas häufiger verwendet als Matlab und R.
Der erste Teil des Buchs enthält eine kompakte Einführung in Python, eine ideale Zusammenfassung für diejenigen, die Python bereits kennen oder mit dem Buch »Einführung in Python 3« von Bernd Klein gelernt haben.
NumPy ist das zentrale Thema des zweiten Teils. Der Aufbau und das Arbeiten mit NumPy-Arrays bilden den Ausgangspunkt dieses Kapitels. Danach wird auf die besonderen Aspekte des dtype-Datentyps eingegangen. In einem weiteren Kapitel stehen die Numerischen Operationen, Broadcasting und Ufuncs von NumPy im Mittelpunkt.
Einigen Fragestellungen der Statistik und der Wahrscheinlichkeitsrechnung wurde ebenfalls ein Kapitel gewidmet. Auch auf die Boolesche Maskierung und Indizierung von NumPy-Arrays wird eingegangen. Der NumPy-Teil des Buchs schließt mit dem File-Handling von Daten.
AUS DEM INHALT //
NumPy:
Numerische Operationen auf mehrdimensionalen Arrays/Broadcasting/Ufuncs
Matplotlib:
Diskrete und kontinuierliche Graphen/Balken- und Säulendiagramme/Histogramme/Konturplots
Pandas:
Series/DataFrames/Lesen, Schreiben und Bearbeiten von Excel- und csv-Dateien/Umgang mit unvollständigen Daten/Datenvisualisierung/Zeitserien

Der Diplom-Informatiker Bernd Klein genießt internationales Ansehen als Python-Dozent. Bisher hat er über 350 Python-Kurse in Firmen und Forschungsinstituten in Deutschland, Frankreich, der Schweiz, Österreich, den Niederlanden, Luxemburg, Rumänien und Kanada durchgeführt. Er ist Gründer und Inhaber des Schulungsanbieters Bodenseo. Besondere Anerkennung findet er wegen seiner
Python-Webseiten, die jährlich über 6 Millionen Besucher verzeichnen. Seit 2016 ist er Lehrbeauftragter für Python und maschinelles Lernen an der Universität Freiburg.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe
3Kurze Einführung in Python
3.1Datenstrukturen
3.1.1Zahlen und Variablen

Wenn man die interaktive Shell von Python oder ipython startet, kann man sofort arithmetische Ausdrücke eingeben:

>>> 5 * 8.6 - 4 ** 2 27.0

Möchte man Werte speichern, so kann man dies in der Shell ebenso wie in einem Programm mittels Variablenzuweisungen bewerkstelligen. Dies geschieht ebenso wie in den meisten anderen Programmiersprachen durch ein Gleichheitszeichen:

>>> x = 42 >>> y = 10 >>> print(x - y) 32

Wie wir im vorigen Beispiel gesehen haben, ist eine Typdeklaration dazu nicht nur nicht erforderlich, sondern auch nicht möglich. Python kennt keine Typdeklarationen. Python-Variablen stellen Referenzen auf beliebige Objekte dar.

Auch wenn den Variablennamen keine Typen zugeordnet sind, so entspricht jedes in Python definierte Objekt einem Typ oder genauer gesagt der Instanz einer Klasse.

>>> x = 42 >>> type(x) <class 'int'>

Wir sehen also, dass eine Integer-Zahl „42” angelegt worden ist. Diese Integer-Zahl ist ein Objekt der Integer-Klasse. Als Integers oder ganze Zahlen bezeichnet man in der Mathematik die Zahlen

..., -3, -2, -1, 0, 1, 2, 3, ...

Das heißt, die Zahlen gehen von minus unendlich bis unendlich. Selbstverständlich können wir „unendlich” in „int” nicht darstellen, aber die Zahlen in Python können extrem groß bzw. extrem klein werden:

>>> x = 2 ** 64 >>> x 18446744073709551616 >>> len(str(x)) 20 >>> x = 2 ** (2 ** 22) >>> len(str(x)) 1262612

Benutzt man einen Variablennamen, der nicht definiert ist, erzeugt man eine Ausnahme:

>>> counter Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'counter' is not defined

Im folgenden Beispiel zeigen wir, dass Variablen Referenzen auf Objekte darstellen. Dazu benutzen wir die Funktion „id”, deren Rückgabewert ein Integer-Wert ist, der die Objekte eindeutig identifiziert. Wir sehen, dass das Integer-Objekt 10 nur einmal erzeugt wird und dass x und y beide dieses Objekt nach der Zuweisung „” referenzieren.

>>> x = 10 >>> id(x) 10106112 >>> y = x >>> id(y) 10106112 >>> y = 12 >>> id(y) 10106176 >>> id(x) 10106112

Neben kennt Python auch Float-Zahlen (), die in Ausdrücken auch mit Integer-Zahlen verknüpft werden können:

>>> f = 3.5 >>> type(f) <class 'float'> >>> f2 = 878.323 >>> x = f * 10 >>> x 35.0
3.1.2Zeichenketten/Strings

Ein weiterer wichtiger Datentyp in Python sind die Zeichenketten, die man meist auch als Strings bezeichnet. Strings können auf verschiedene Arten definiert werden: mit einfachen Anführungszeichen, mit doppelten Anführungszeichen oder mit drei einfachen bzw. drei doppelten Anführungszeichen. Wir demonstrieren diese Varianten im folgenden Beispiel. Wir verwenden auch das Nummernzeichen „#”, um Kommentare einzuleiten:

>>> 'ein String in einfachen Anführungszeichen' 'ein String in einfachen Anführungszeichen' >>> 'Miller\s son' # der Rückwärtsschrägstrich fungiert wie üblich als Escape-Zeichen 'Miller\\s son' >>> "Miller's son" # jetzt brauchen wir kein Escape-Zeichen "Miller's son" >>> print("""Strings mit drei Anführungszeichen können ... über mehrere ... Zeilen gehen und enden erst, wenn ... drei Anführungszeichen kommen""") Strings mit drei Anführungszeichen können über mehrere Zeilen gehen und enden erst, wenn drei Anführungszeichen kommen >>>

Bei den Strings in dreifachen Anführungszeichen wartet die Shell noch mit einer Besonderheit auf, wenn wir während der Definition eines solchen Strings die Return-Taste tippen. Die nächste Zeile wird dann nicht mit dem üblichen Prompt „ ” eingeleitet, sondern mit einem aus drei Punkten bestehenden Prompt „... ”. Damit signalisiert uns die Shell, dass der String noch nicht fertig ist. Der String ist erst fertig, wenn wieder entsprechend drei einfache () bzw. doppelte () Anführungszeichen eingegeben werden.

Strings können indiziert werden, dabei entspricht das erste Zeichen dem Index 0. Das letzte Zeichen eines Strings können wir mit dem Index ansprechen, d.h. mit negativen Zahlen erhält man eine Indizierung von rechts:

>>> language = "Python" >>> language[0] # 1. Zeichen des Strings an der Stelle 0 'P' >>> language[2] # 3. Zeichen des Strings an der Stelle 2 't' >>> language[-1] # letztes Zeichen 'n' >>> language[-2] # vorletztes Zeichen 'o'

Während man mit dem Indizieren nur einzelne Zeichen, also Strings der Länge 1, aus einem String erhalten kann, ermöglicht der Teilbereichsoperator (Slicing) das „Herausschneiden” von beliebigen Teilstrings:

>>> s = "Ein grüner Fisch singt nie schräg!" >>> s[4:10] # von Position 4 (inklusive) bis Position 10 (exklusive) 'grüner' >>> s[-7:] # von Position -7 bis zum Ende des Strings 'schräg!' >>> s[:16] # von Anfang bis zur Position 16 'Ein grüner Fisch'

Finden von Teilstrings in Strings:

>>> s = "A horse, a horse! " >>> s += "My kingdom for a horse!" >>> s 'A horse, a horse! My kingdom for a horse!' >>> s.find("horse") 2 >>> s.find("horse", 3) 11 >>> s.find("horse", 16) 35 >>> s.find("horse", 36) -1 >>> s.rfind("horse") # Suche beginnt von hinten 35

Die Methode index liefert die gleichen Ergebnisse, außer wenn der Suchstring nicht im String vorkommt:

>>> s.index("horse") 2 >>> s.index("horse", 3) 11 >>> s.index("cow") Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: substring not found

Ein String kann mit Methode auch in eine Liste von Teilstrings aufgespaltenwerden. Ohne Parameter dient jede Folge von Leerzeichen (auch , , usw. sind Leerzeichen) als Trenner. Wird ein String als Parameter übergeben, wird dieser als Trenner verwendet. Außerdem kann man noch einen weiteren Parameter übergeben, mit dem man die Anzahl der zu spaltenden Teilstrings angeben kann:

>>> s = "The is \n a\tstring." >>> s.split() ['The', 'is', 'a', 'string.'] >>> t = "34,12.3,90,0,,1" >>> t.split(",") ['34', '12.3', '90', '0', '', '1'] >>> t.split(",", 2) ['34', '12.3', '90,0,,1'] >>> t.split(",", maxsplit=2) ['34', '12.3', '90,0,,1'] >>> t.split(sep=",", maxsplit=2) ['34', '12.3', '90,0,,1'] >>> s.split(maxsplit=2) ['The', 'is', 'a\tstring.'] >>> # aufspalten von hinten: ... >>> t.rsplit(sep=",", maxsplit=2) ['34,12.3,90,0', '', '1'] >>> s.rsplit(maxsplit=2) ['The is', 'a', 'string.']

Mit den Methoden , und ist es möglich, Leerzeichen oder auch andere Zeichen vom linken bzw. rechten Rand eines Strings oder beidseitig zu entfernen:

>>> s = "\n2000 Hamburg\r\n" >>> s.strip() '2000 Hamburg' >>> s.strip("\n\r0123456789 ") 'Hamburg' >>> s.rstrip() '\n2000 Hamburg' >>> s.lstrip() '2000 Hamburg\r\n'
3.1.3Listen

Listen werden mittels eckiger Klammern in Python erzeugt. Eine Liste kann beliebige Python-Objekte enthalten, die durch Komma getrennt sind:

>>> lst = ["rot", "grün", "blau"] >>> lst2 = ["rot", 12, [3, 6.78]]

Auf Listenelemente kann man wie bei Strings über Indices zugreifen oder man greift auf mehrere Listenelemente mit dem Teilbereichsoperator zu. Außerdem können wir mittels Indizierung der Liste auch neue Werte zuweisen:

>>> lst = ["rot", 12, "gelb", 123, [3, "Noch ein String"]] >>> lst[0] 'rot' >>> lst[4] [3, 'Noch ein String'] >>> lst[4][1] 'Noch ein String' >>> lst[1:4] [12, 'gelb', 123] >>> lst[0] = "orange" >>> lst ['orange', 12, 'gelb', 123, [3, 'Noch ein String']]

Wir können prüfen, ob ein Element in einer Liste vorhanden ist:

>>> farben = ["rot", "grün", "blau", "gelb"] >>> "rot" in farben True >>> "braun" in farben False >>> "grau" not in farben True

Anhängen von Objekten an Listen:

>>> farben = ["rot", "grün", "blau", "gelb"] >>> farben.append("silber") >>> farben ['rot', 'grün', 'blau', 'gelb', 'silber']

Kopieren und Konkatenieren von Listen:

>>> farben1 = ["rot", "grün"] >>> farben2 = ["blau", "gelb"] >>> farben = farben1 + farben2 >>> farben ['rot', 'grün', 'blau', 'gelb'] >>> >>> farben1 = ["rot", "grün"] >>> farben2 = ["blau", "gelb"] >>> farben = farben1.copy() >>>...
Blick ins Buch
Inhaltsverzeichnis
Inhalt6
Vorwort16
Danksagung17
1 Einleitung18
1.1 Die richtige Wahl18
1.2 Aufbau des Buches19
1.3 Python-Installation20
1.4 Download der Beispiele20
1.5 Anregungen und Kritik20
2 Numerisches Programmieren mit Python22
2.1 Definition von numerischer Programmierung22
2.2 Zusammenhang zwischen Python, NumPy, Matplotlib, SciPy und Pandas23
2.3 Python, eine Alternative zu Matlab24
Teil I Kurze Einführung in Python26
3 Kurze Einführung in Python28
3.1 Datenstrukturen28
3.1.1 Zahlen und Variablen28
3.1.2 Zeichenketten29
3.1.3 Listen32
3.1.4 Tupel33
3.1.5 Frozensets und Mengen in Python34
3.1.6 Dictionaries35
3.2 Kontrollstrukturen36
3.2.1 Bedingte Anweisungen36
3.2.2 Schleifen37
3.2.3 Funktionen40
3.3 Ausnahmebehandlung43
3.3.1 Die optionale else-Klausel46
3.3.2 Exceptions generieren46
3.3.3 Finalisierungsaktion46
3.4 Dateien lesen und schreiben47
3.4.1 Datei lesen47
3.4.2 Datei schreiben48
3.5 Modularisierung49
3.5.1 Namensräume von Modulen49
3.5.2 Suchpfad für Module50
3.5.3 Inhalt eines Moduls50
3.5.4 Eigene Module50
3.5.5 Dokumentation für eigene Module51
3.6 Klassen-Definition52
3.6.1 Eine einfache Klasse52
3.6.2 Attribute52
3.6.3 Initialisierung von Instanzen54
3.6.4 Vererbung54
3.6.5 Private, geschützte und öffentliche Attribute55
3.6.6 Properties56
Teil II NumPy58
4 NumPy Einführung60
4.1 Überblick60
4.2 Vergleich NumPy-Datenstrukturen und Python61
4.3 Ein einfaches Beispiel61
4.4 Grafische Darstellung der Werte62
4.5 Speicherbedarf63
4.6 Zeitvergleich zwischen Python-Listen und NumPy-Arrays66
5 Arrays in NumPy erzeugen68
5.1 Erzeugung äquidistanter Intervalle68
5.1.1 arange68
5.1.2 linspace69
5.1.3 Nulldimensionale Arrays in NumPy70
5.1.4 Eindimensionales Array70
5.1.5 Zwei- und Mehrdimensionale Arrays71
5.2 Shape/Gestalt eines Arrays71
5.3 Indizierung und Teilbereichsoperator73
5.4 Dreidimensionale Arrays78
5.5 Arrays mit Nullen und Einsen81
5.6 Arrays kopieren82
5.6.1 numpy.copy(A) und A.copy()82
5.6.2 Zusammenhängend gespeicherte Arrays82
5.7 Identitätsarray84
5.7.1 Die identity-Funktion84
5.7.2 Die eye-Funktion85
5.8 Aufgaben86
5.9 Lösungen87
6 Datentyp-Objekt: dtype90
6.1 dtype90
6.2 Strukturierte Arrays92
6.3 Ein- und Ausgabe von strukturierten Arrays94
6.4 Unicode-Strings in Arrays96
6.5 Umbenennen von Spaltennamen96
6.6 Spaltenwerte austauschen97
6.7 Komplexeres Beispiel97
6.8 Aufgaben99
6.9 Lösungen100
7 Dimensionsänderungen102
7.1 Reduktion und Reshape von Arrays102
7.1.1 flatten103
7.1.2 ravel103
7.1.3 Unterschiede zwischen ravel und flatten104
7.1.4 reshape105
7.2 Konkatenation von Arrays106
7.3 Weitere Dimensionen hinzufügen107
7.4 Vektoren stapeln108
7.5 Fliesen mit tile109
8 Numerische Operationen auf NumPy-Arrays112
8.1 Operatoren und Skalare112
8.2 Arithmetische Operationen auf zwei Arrays114
8.3 Matrizenmultiplikation und Skalarprodukt115
8.3.1 Definition der dot-Funktion115
8.3.2 Beispiele zur dot-Funktion115
8.3.3 Das dot-Produkt im 3-dimensionalen Fall117
8.4 Vergleichsoperatoren122
8.5 Logische Operatoren123
8.6 Broadcasting123
8.6.1 Zeilenweises Broadcasting124
8.6.2 Spaltenweises Broadcasting:126
8.6.3 Broadcasting von zwei eindimensionalen Arrays127
8.7 Distanzmatrix128
8.8 Ufuncs129
8.8.1 Anwendung von Ufuncs129
8.8.2 Parameter für Rückgabewerte bei Ufuncs131
8.8.3 accumulate132
8.8.4 reduce133
8.8.5 outer134
8.8.6 at135
8.9 Aufgaben135
8.10 Lösungen136
9 Statistik und Wahrscheinlichkeiten138
9.1 Einführung138
9.2 Zufallszahlen mit Python139
9.2.1 Die Module random und secrets139
9.2.2 Erzeugen einer Liste von Zufallszahlen139
9.3 Zufällige Integer-Zahlen mit Python140
9.4 Stichproben/Auswahlen143
9.5 Zufallsintervalle144
9.6 Gewichtete Zufallsauswahl145
9.7 Stichproben mit Python147
9.8 Kartesische Auswahl149
9.8.1 Kartesisches Produkt149
9.8.2 Kartesische Auswahl: cartesian_choice150
9.9 Echte Zufallszahlen152
9.10 Seed/Startwert153
9.11 Gauss'sche Normalverteilung154
9.12 Übung mit Binärsender156
9.13 Synthetische Verkaufszahlen158
9.14 Aufgaben160
9.15 Lösungen162
10 Boolesche Maskierung und Indizierung168
10.1 Fancy-Indizierung170
10.2 Indizierung mit einem Integer-Array170
10.2.1 Übung171
10.2.2 Lösung171
10.3 nonzero und where171
10.3.1 Übung172
10.3.2 Lösung173
10.3.3 Flatnonzero und count_nonzero173
11 Lesen und Schreiben von Datendateien174
11.1 Textdateien speichern mit savetxt174
11.2 Textdateien laden mit loadtxt176
11.2.1 loadtxt ohne Parameter176
11.2.2 Spezielle Trenner176
11.2.3 Selektives Einlesen von Spalten176
11.2.4 Datenkonvertierung beim Einlesen177
11.3 tofile178
11.4 fromfile179
11.5 Best Practice, um Daten zu laden und zu speichern181
11.6 Und noch ein anderer Weg: genfromtxt181
Teil III Matplotlib182
12 Einführung184
12.1 Ein erstes Beispiel185
12.2 Der Formatparameter von pyplot.plot186
12.3 Bezeichnungen für die Achsen189
12.4 Abfragen und Ändern des Wertebereichs der Achsen191
12.5 linspace zur Definition von X-Werten192
12.6 Linienstil ändern194
12.7 Flächen einfärben195
13 Achsen- und Skalenteilung198
13.1 Achsenverschiebungen und Achsenbezeichnungen198
13.2 Verändern der Achsenbeschriftungen203
13.3 Justierung der Tick-Beschriftungen204
14 Legenden und Kommentare hinzufügen206
14.1 Legende hinzufügen206
14.2 Kommentare211
15 Mehrfache Plots und Doppelachsen216
15.1 Mehrere Abbildungen und Achsen216
15.2 Unterdiagramm mit gridspec225
15.3 Arbeiten mit Objekten228
15.4 Ein Plot innerhalb eines anderen Plots230
15.5 Setzen des Plotbereichs231
15.6 Logarithmische Darstellung232
15.7 Sekundäre Y-Achse233
15.8 Gitterlinien234
15.9 Abbildungen speichern235
15.10 Aufgaben236
15.11 Lösungen236
16 Konturplots240
16.1 Erstellen eines Maschengitters240
16.2 Berechnung der Werte242
16.3 Linienstil und Farben anpassen244
16.4 Gefüllte Konturen245
16.5 Individuelle Farben246
16.6 Schwellen247
16.7 Andere Grids248
16.7.1 Meshgrid genauer248
16.7.2 mgrid252
16.7.3 ogrid252
16.8 Aufgaben253
16.9 Lösungen254
17 Balken-, Säulendiagramme und Histogramme258
17.1 Histogramme258
17.2 Säulendiagramm264
17.3 Balkendiagramme266
17.4 Aufgaben267
17.5 Lösung267
Teil IV Pandas268
18 Einführung in Pandas270
18.1 Datenstrukturen270
18.2 Series271
18.2.1 Indizierung273
18.2.2 pandas.Series.apply274
18.2.3 Zusammenhang zu Dictionaries275
18.3 NaN – Fehlende Daten275
18.3.1 Die Methoden isnull() und notnull()276
18.3.2 Zusammenhang zwischen NaN und None277
18.3.3 Fehlende Daten filtern277
18.3.4 Fehlende Daten auffüllen278
19 DataFrame280
19.1 Zusammenhang zu Series280
19.2 Manipulation der Spaltennamen281
19.3 Zugriff auf Spalten282
19.4 DataFrames aus Dictionaries283
19.5 Index ändern284
19.5.1 Umsortierung der Spalten284
19.5.2 Spalte in Index umfunktionieren286
19.6 Selektion von Zeilen287
19.7 Summen und kumulative Summen288
19.8 Spaltenwerte ersetzen288
19.9 Sortierung290
19.10 Spalten einfügen291
19.11 DataFrame und verschachtelte Dictionaries292
19.12 Aufgaben293
19.13 Lösungen295
20 Dateien lesen und schreiben300
20.1 Trennerseparierte Werte300
20.2 CSV- und DSV-Dateien lesen301
20.3 Schreiben von CSV-Dateien302
20.4 Lesen und Schreiben von Excel-Dateien304
20.5 Aufgaben305
20.6 Lösungen305
21 Umgang mit NaN308
21.1 'nan' in Python308
21.2 NaN in Pandas309
21.2.1 Beispiel mit NaNs311
21.3 dropna() verwenden312
21.4 Aufgaben314
21.5 Lösungen314
22 Binning316
22.1 Einführung316
22.2 Binning mit Pandas318
22.2.1 Von Pandas verwendete Bins318
22.2.2 Andere Wege, um Bins zu definieren319
22.2.3 Bins und Werte zählen320
22.2.4 Bins benennen322
23 Mehrstufige Indizierung324
23.1 Einführung324
23.2 Mehrstufig indizierte Series324
23.3 Zugriffsmöglichkeiten326
23.4 Zusammenhang zu DataFrames327
23.5 Dreistufige Indizes329
23.6 Vertauschen mehrstufiger Indizes331
23.7 Aufgaben332
23.8 Lösungen333
24 Datenvisualisierung mit Pandas334
24.1 Einführung334
24.2 Liniendiagramme in Pandas335
24.2.1 Series335
24.2.2 DataFrames337
24.2.3 Sekundärachsen (Twin Axes)339
24.2.4 Mehrere Y-Achsen340
24.3 Ein komplexeres Beispiel342
24.3.1 Spalten mit Zeichenketten (Strings) in Floats wandeln345
24.4 Balkendiagramme in Pandas346
24.4.1 Ein einfaches Beispiel346
24.4.2 Balkengrafik für die Programmiersprachennutzung347
24.4.3 Farbgebung einer Balkengrafik348
24.5 Kuchendiagramme in Pandas349
24.5.1 Ein einfaches Beispiel349
25 Zeit und Datum354
25.1 Einführung354
25.2 Python-Standardmodule für Zeitdaten355
25.2.1 Die date-Klasse355
25.2.2 Die time-Klasse356
25.3 Die datetime-Klasse357
25.4 Unterschied zwischen Zeiten359
25.4.1 Wandlung von datetime-Objekten in Strings360
25.4.2 Wandlung mit strftime360
25.5 Ausgabe in Landessprache361
25.6 datetime-Objekte aus Strings erstellen362
26 Zeitserien364
26.1 Einführung364
26.2 Zeitreihen und Python364
26.3 Datumsbereiche erstellen367
Stichwortverzeichnis370

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

arznei-telegramm

arznei-telegramm

Das arznei-telegramm® informiert bereits im 53. Jahrgang Ärzte, Apotheker und andere Heilberufe über Nutzen und Risiken von Arzneimitteln. Das arznei-telegramm®  ist neutral und ...

Berufsstart Bewerbung

Berufsstart Bewerbung

»Berufsstart Bewerbung« erscheint jährlich zum Wintersemester im November mit einer Auflage von 50.000 Exemplaren und ermöglicht Unternehmen sich bei Studenten und Absolventen mit einer ...

Deutsche Tennis Zeitung

Deutsche Tennis Zeitung

Die DTZ – Deutsche Tennis Zeitung bietet Informationen aus allen Bereichen der deutschen Tennisszene –sie präsentiert sportliche Highlights, analysiert Entwicklungen und erläutert ...