Lernverlauf für die Teilnahme an der Entwicklung von Teamanwendungen mit Python ~ Ergänzung der Grundelemente und Aufbau der jupyterLab-Umgebung ~

Vorheriger Artikel

Lernverlauf für die Teilnahme an der Entwicklung von Teamanwendungen in Python ~ Abschluss von "Einführung in Python3" des Paiza-Lernens ~

Ergänzung zum vorherigen Artikel

Das Konzept der Scheiben

python


word = 'hello'
print(word[0:2]) #Auszug aus dem 0. Element zum 2. Element

##Verarbeitungsergebnis
he

Die Angabe der Position eines Elements mit einem sogenannten Index scheint in Python als Slicing bezeichnet zu werden.

Natürlich gibt es eine Slice-Notation in der Liste

python



wordlist = ['apple','bike','cake','drum','electric']
print(wordlist[2:]) #Auszug aus dem zweiten Element bis zum Ende
print(wordlist[:2]) #Extrahieren Sie vom ersten zum zweiten Element

##Verarbeitungsergebnis

['cake', 'drum', 'electric']
['apple', 'bike']

Über die Liste

Fügen Sie am Ende der Liste ein Element hinzu .append()

Löschen Sie das im Argument angegebene Element aus der Liste .remove()

Löschen Sie alle Listenelemente .clear()

Fügen Sie x zum i-ten in der Liste hinzu .insert(i,x)

python



wordlist = ['apple','bike','cake','drum','electric']
wordlist.insert(5,'falcon')
print(wordlist)

##Ausgabeergebnis
['apple', 'bike', 'cake', 'drum', 'electric', 'falcon']

Gibt den Index des ersten Elements mit dem im Argument festgelegten Wert zurück .index()

python



lst = [1, 2, 3, 4, 5]
idx = lst.index(4)
print(idx)

##Ausgabeergebnis
3

Da die Liste auch das Konzept der ID hat, eine Funktion zum Erstellen eines Duplikats .copy()

python



#Beispiel für das Erstellen einer Kopie der Liste und das Bearbeiten der Kopie, das jedoch fehlschlägt, da die IDs identisch sind

wordlist = ['apple','bike','cake','drum','electric']
copylist = wordlist

copylist[0] = 'admin'
print(wordlist)
print(copylist) 

##Ausgabeergebnis
['admin', 'bike', 'cake', 'drum', 'electric']
['admin', 'bike', 'cake', 'drum', 'electric']

#Erfolgsgeschichte

wordlist = ['apple','bike','cake','drum','electric']
copylist = wordlist.copy()
print(wordlist is not copylist) #Stellen Sie sicher, dass die Wortliste keine Kopierliste ist

copylist[0] = 'admin'
print(wordlist)
print(copylist) 


##Ausgabeergebnis
True
['apple', 'bike', 'cake', 'drum', 'electric']
['admin', 'bike', 'cake', 'drum', 'electric']

mata Schleifen von zwei oder mehr Listen können mit zip dargestellt werden.

Zum Beispiel das folgende Beispiel

python



list1 = list(range(1,5))
list2 = list(range(5,9))

for a,b in zip(list1,list2):
    print(f"a = {a}, b = {b}", a, b )

Bereiten Sie zwei Zählervariablen vor und wiederholen Sie die Zuordnung aus Liste1 bzw. Liste2. Dann wird es wie folgt.

##Ausgabeergebnis

a = 1, b = 5 1 5
a = 2, b = 6 2 6
a = 3, b = 7 3 7
a = 4, b = 8 4 8

Anweisungsbegrenzer (Semikolon)

In Python ist es nicht erforderlich, am Ende eines Satzes ein Semikolon hinzuzufügen, es kann jedoch als Anweisungsbegrenzer verwendet werden. Mit anderen Worten

a = 10; b=20; c=30;

Das bedeutet, dass Variablendefinitionen zusammengefasst werden können. Wenn Sie alle in eine Zeile setzen, wird die Lesbarkeit natürlich erheblich beeinträchtigt. Seien Sie also vorsichtig.

brechen und weitermachen

Python hat auch Pause und weiter.

python



i = 0

while True:
    i += 1

   if i > 10:
        break
    if i % 2 == 1:
        continue
    print(i)

print('Beenden Sie den Vorgang')

Wenn i über 10 liegt, wird die Verarbeitung unterbrochen, und wenn i ungerade ist, wird die Verarbeitung auf i + = 1 zurückgesetzt. Dann werden nur 10 oder weniger gedruckt.

Taple-Typ und Listentyp

Listen sind wie sogenannte Arrays, aber Python hat ein ähnliches Konzept für Tapple-Typen.

Der Unterschied zur Liste besteht darin, dass ** die gespeicherten Elemente nicht aktualisiert / hinzugefügt / gelöscht werden können **. Umgekehrt kann jedoch verstanden werden, dass es konstante Werte speichert.

Sie können andere Typen mit list () und tuple () in Listen oder Taples konvertieren.

python



a =list("sample"); b=tuple("sample2"); c=list(range(1,11,2)); d=tuple(range(1,11,2))
print(type(d))

Die durch die Zeichenfolge und den Bereich erzeugten Werte (beginnend mit 1 und inkrementell um 2 werden im Bereich von weniger als 11 erfasst) werden in Listentyp bzw. Taple gespeichert. Wenn Sie eine Zeichenfolge in eine Liste oder ein Taple konvertieren, wird sie übrigens für jedes Zeichen separat gespeichert.

Das Auspacken kann verwendet werden, wenn jeder Variablen ein Element zugewiesen werden soll, das in einer Liste oder einem Taple gespeichert ist.

python



words = ['apple','bike','corn']
a,b,c = words
print(a)

##Ausgabeergebnis

apple

Beachten Sie, dass ein Fehler auftritt, wenn words = a, b, c.

Wenn Sie mehrere Listen zu einer zweidimensionalen Liste kombinieren möchten, verwenden Sie zip ().

python



a = ['apple','bike','corn']
b = ['docter','egg','falcon']
c = ['game','heart','icon']
d = ['jack','king','love']
array_list = zip(a,b,c,d)
result = list(array_list)
print(result)

##Ausgabeergebnis
[('apple', 'docter', 'game', 'jack'), ('bike', 'egg', 'heart', 'king'), ('corn', 'falcon', 'icon', 'love')]

In der Phase der Ausführung von zip () ist es nur ein Objekt, daher werde ich es mit der Listenfunktion in eine Liste konvertieren. Und wie Sie aus dem Ausgabeergebnis sehen können, wenn Sie zip () verwenden, Sie können sehen, dass die Elemente jeder Liste für jeden Index wiederhergestellt werden. Mit anderen Worten

python



print(result[0])

##Ausgabeergebnis
('apple', 'docter', 'game', 'jack')

Es stellt sich heraus, dass. Beachten Sie, dass dies ein anderer Prozess ist als das Erstellen einer Liste mit der for-Anweisung.

Typ einstellen

Stellen Sie sich das als eine Reihe mathematischer Begriffe oder eine Gruppe vor. Mit anderen Worten, es handelt sich um eine Sammlung nicht überlappender Elemente. Zum Beispiel

fruit = {'apple','banana','lemon'}

Es ist wie es ist. Listen werden durch "[]" und Taples durch "()" dargestellt, während Mengen durch "{}" dargestellt werden. Es hat jedoch die Form von "x = {}", und wenn kein Element darin registriert ist oder wenn das registrierte Element ein Schlüssel: Wert ist, wird es zu einem Wörterbuch anstelle einer Menge. Ein Set kann auch als Taple registriert werden, eine Liste kann jedoch nicht registriert werden.

Zusammenfassung von Liste, Tapple, Set, Wörterbuch

aufführen

-So genanntes Array. -Elemente können aktualisiert, hinzugefügt und gelöscht werden.

Taple

-Ein Bild eines Arrays, das konstante Werte speichert. -Elemente können nicht aktualisiert, hinzugefügt oder gelöscht werden. -Konvertierung von anderen Typen zu tapple ist tuple ().

einstellen

-Ein sogenanntes Set-Array (Gruppe). -Elemente mit demselben Inhalt können nur einmal registriert werden. -Taples können als Elemente verwendet werden, Listen jedoch nicht. -Konvertierung von anderen Typen in Mengen ist set ().

Wörterbuch

-So so genannte assoziative Anordnung. Das Element muss die Form key: value haben.

Es stellt sich heraus, dass.

Zufällige Modulergänzung

Das Zufallsmodul kann nicht nur für numerische Werte verwendet werden, sondern auch für Sequenzen wie Taples und Listen.

Holen Sie sich ein Element zufällig aus der Sequenz mit choice (). Ruft k Elemente mit Duplikaten aus der im Argument festgelegten Reihenfolge mit "options (seq, k = 1)" ab und gibt sie als Liste zurück. sample (seq, k) holt k Elemente aus der Sequenz und gibt sie als Liste ohne Duplizierung zurück. Sie können die Sequenz mit shuffle () sortieren.

Mit anderen Worten

python



import random

a = ['apple','basket','color','dictionary','error']

wordlist =list(a)

print(random.choice(wordlist))
print(random.choices(wordlist,k=3))
print(random.sample(wordlist,3))

print(wordlist)
random.shuffle(wordlist)
print(wordlist)

##Ausgabeergebnis(Da es sich um ein Zufallsmodul handelt, ändert sich das Ergebnis bei jeder Ausführung.)

dictionary
['error', 'apple', 'color']
['dictionary', 'basket', 'color']
['apple', 'basket', 'color', 'dictionary', 'error']
['color', 'apple', 'dictionary', 'error', 'basket']

Einschlussnotation

python



squares = [v ** 2 for v in range(10)]
print(squares)

Wie beim letzten Mal können Sie einfach eine Zahlenzeichenfolge erstellen, wenn Sie wie oben beschrieben eine for-Anweisung in der Liste erstellen und den Ausdruck des Elements, das Sie speichern möchten, zuvor wiederholt in die Liste einfügen. Im obigen Beispiel werden beispielsweise die quadratischen Werte von 0 bis 9 in der Liste gespeichert. Es kann auch als Satz verwendet werden. In diesem Fall kann ein Satz generiert werden.

python



sample = {x for x in range(30) if x %2 == 0}
print(sample)

##Ausgabeergebnis
{0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28}

Unter dem Gesichtspunkt der Erzeugung einer Menge sollte es eine Regelmäßigkeit bei der Erzeugung geben (die obige Menge ist eine gerade Menge im Bereich von 0 ≤ x <30), um sie von einer einfachen Liste zu unterscheiden.

Bei einem Wörterbuch ist dies der Fall.


languages = [
    "apple",
    "bike",
    "cow",
    "decade",
    "egostic"
]

dictionary = {lang.upper():len(lang) for lang in languages}
print(dictionary)

##Ausgabeergebnis
{'APPLE': 5, 'BIKE': 4, 'COW': 3, 'DECADE': 6, 'EGOSTIC': 7}

Erstellen Sie zunächst einen Schlüssel mit einer Liste. Dies ist gut mit Tapples. Und definieren Sie die Form von key: value vor für. Diesmal wird die erstellte Liste der Zählervariablen lang zugeordnet. Basierend auf dieser lang wird die Eigenschaft dann erstellt, indem der Vorgang des Erstellens einer Eigenschaft als Großbuchstabe der in Sprachen gespeicherten Zeichenfolge wiederholt wird: der Wert der Anzahl der Zeichen und das Erstellen eines Wörterbuchs.

Erstellen einer Jupyter Lab-Umgebung mit Docker

Bauverfahren

1. Erstellen einer Docker-Datei

FROM jupyter/datascience-notebook:7a0c7325e470 #Angeben eines Bildes

COPY requirements.txt tmp/requirements.txt #Eine Datei mit den zu installierenden Paketen.
RUN pip install -r tmp/requirements.txt #pip ist ein Befehl zum Installieren von Python-Paketen. Hier Anforderungen.Installieren Sie die in txt aufgeführten Pakete.

EXPOSE 8888

Zur Überprüfung wählt FROM das Basisbild aus, dh das Bild, das Sie verwenden möchten. EXPOSE öffnet den angegebenen Port. Wenn Sie keine Docker-Umgebung unter Mac oder Windows 10 Pro erstellen, müssen Sie natürlich auch die Portweiterleitung auf der Seite der virtuellen Box festlegen.

2. Machen Sie docker-compose.yml


version: "3.7" # docker-compose.Geben Sie die Version des yml-Dateiformats an
services:
  jupyterlab: #Dienstleistungen zu behandeln
    build: .
    container_name: jupyterlab #Containername
    environment:
      - JUPYTER_ENABLE_LAB=yes #Aktivieren Sie jupyterLab
    ports:
      - "8888:8888" #Angabe des vom Dienst verarbeiteten Ports
    volumes:
      - ./JupyterLab:/home/jovyan/work #Einstellung von Verzeichnissen, die gemeinsam genutzt / synchronisiert werden sollen. Host-seitiges Verzeichnis:Verzeichnis auf der Seite des virtuellen Raums
    command: start.sh jupyter lab --NotebookApp.token='' #Lassen Sie die Eingabe des Anmeldetokens beim Starten des Containers aus


Ich bin mit Docker noch nicht vertraut, daher habe ich beim Googeln verschiedene Dinge ausprobiert. Die Bedeutung der Erstellung von docker-compose.yml besteht darin, dass es einfacher ist zu verstehen, wo Sie später lange Optionen vornehmen müssen, wenn Sie versuchen, dies mit "Docker Run" zu tun. Es scheint eine Bedeutung zu geben. Der schnellste Weg, um eine Umgebung zu erstellen, besteht darin, das Image vom Beamten abzurufen, einen Container mit Optionen mit "Docker Run" zu erstellen und dort zu starten, aber schließlich hat sich Docker daran gewöhnt Ich hatte das Gefühl, dass es die Ursache dafür war, im Sumpf stecken zu bleiben, wenn ich keine Person war, und den Container mit zwei Dateien zu verwalten, Dockerfile (ich habe gehört, dass ich dies möglicherweise nicht kürzlich schreibe) und docker-compose.yml, im Gegenteil, Lesbarkeit und Erweiterung später Ich dachte, es wäre gut in Bezug auf Leichtigkeit.

Lesen und schreiben Sie Dateien in Python, während Sie JupyterLab verwenden.

Bestätigung des Zeichencodes

python



import sys
print(sys.getdefaulttencoding())

Datei lesen

python



with open('jinko.txt','rt')as f:
    print(f.read())

Das Lesen und Schreiben von Dateien in Python beginnt mit "open ()" und endet mit "close ()". Um jedoch zu vermeiden, dass "close ()" vergessen wird, verwenden Sie "with open ()".

Lesen Sie die Daten in der Datei als Liste

python



with open('jinko.txt') as f:
    l = f.readlines()
print(l)

#Oder

with open('jinko.txt') as f:
    while True:
        l = f.readline()
        print(l)
        if not l:
            break

Weisen Sie die Datei der Variablen f zu, machen Sie sie zu einem Objekt und verwenden Sie die Methode readlines (). Oder verwenden Sie die readline () -Methode in einer Schleife, um zeilenweise zu lesen.

Begrenzen Sie die Anzahl der gelesenen Zeilen mit while

python



count = 0
with open('jinko.txt') as f:
    l = f.readline()
    while True:
        l = f.readline()
        m = l.strip()
        print(m)
        count += 1
        if count > 5:
            break

#Bei der zeilenweisen Auflistung durch Kommas getrennt

import csv

count = 0
with open('jinko.txt') as f:
    l = f.readline()
    reader = csv.reader(f)
    for l in reader:
        print(l)
        count += 1
        if count > 5:
            break

#Nehmen Sie numerische Werte aus Daten heraus und versuchen Sie zu berechnen

import csv

s = 0
with open('jinko.txt') as f:
    reader = csv.reader(f)
    for l in reader:
        if l[0] == "Hokkaido":
            s = s + int(l[2])
print("Hokkaido Bevölkerung", s ,"Mann")

##Teilauszug der oben gelesenen Daten

['Hokkaido', 'Sapporo', '1913545']
['Hokkaido', 'Hakodate City', '279127']
['Hokkaido', 'Otaru Stadt', '131928']
['Hokkaido', 'Asahikawa Stadt', '347095']
['Hokkaido', 'Muroranische Stadt', '94535']
['Hokkaido', 'Kushiro City', '181169']


csv.reader () funktioniert wiesplit (). Es wird empfohlen, dies zu verwenden, wenn die Daten im CSV-Format vorliegen. In Bezug auf den Berechnungsteil gibt "l [0]" zunächst aus dem Auszug der zu lesenden Daten die Präfektur an, dh "wenn l [0] ==" Hokkaido ":" bestimmt den Bereich der zu lesenden Daten. Und Sie können sehen, dass l [2] Population enthält, dh Zahlendaten. Da es jedoch als Zeichenfolge gespeichert ist, wird es nach der Digitalisierung mit "int ()" verwendet. Wenn Sie den obigen Satz schreiben, können Sie daher die Population von Hokkaido in den Daten berechnen.

Lesen Sie Dateien mit unterschiedlicher Codierung

python



with open('jinko_sjis.txt', encoding='shift-jis', newline='\r\n') as f:
    while True:
        l = f.readline()
        print(l)
        if not l:
            break

Geben Sie beim Lesen einer anderen Datei als utf-8 optional das Dateiformat "encoding =" an, das Sie lesen möchten ". Geben Sie außerdem die Art des Zeilenumbruchs mit "newline" an. Dieses Mal wird der Zeilenvorschub in Windows angegeben.

Eine Datei schreiben

python



with open("write_example.txt", "w") as f:
    f.write("abc\r\n")
    f.write("defgh")

#Mehrzeilige Daten schreiben

data = ["abc","defgh"]
with open("write_example2.txt","w") as f:
    f.writelines(data)

#CSV-Daten schreiben

import csv

alldata = [
    [1,2,3],[2,3,5]
]

with open("write_example3","w") as f:
    writer =csv.writer(f)
    writer.writerows(alldata)


##for-Anweisung kann ebenfalls verwendet werden


import csv

alldata = [
   [1, 2, 3],
   [2, 3, 5]
]

with open("writeexample5.txt", "w") as f:
    writer = csv.writer(f)
    for data in alldata:
            writer.writerow(data)


Referenzseite

Die Geschichte des Versuchs, mit Docker eine maschinelle Lernumgebung zu erstellen

Erstellen einer Containerumgebung für Jupyter Lab

Recommended Posts

Lernverlauf für die Teilnahme an der Entwicklung von Teamanwendungen mit Python ~ Ergänzung der Grundelemente und Aufbau der jupyterLab-Umgebung ~
Lernverlauf für die Teilnahme an der Entwicklung von Team-Apps in Python ~ Indexseite ~
Lernverlauf für die Teilnahme an der Team-App-Entwicklung mit Python ~ Django Tutorial 5 ~
Lernverlauf für die Teilnahme an der Entwicklung von Team-Apps mit Python ~ Django Tutorial 4 ~
Lernverlauf für die Teilnahme an der Team-App-Entwicklung mit Python ~ Django Tutorial 1, 2, 3 ~
Lernverlauf für die Teilnahme an der Team-App-Entwicklung mit Python ~ Django Tutorial 6 ~
Lernverlauf für die Teilnahme an der Team-App-Entwicklung mit Python ~ Django Tutorial 7 ~
Lernverlauf für die Teilnahme an der Entwicklung von Team-Apps in Python ~ Denken Sie ein wenig über die Definition von Anforderungen nach ~
Lernverlauf zur Teilnahme an der Entwicklung von Teamanwendungen mit Python ~ Nach Abschluss von "Einführung in Python 3" des Paiza-Lernens ~
Beispiel für die Erstellung einer Python-Umgebung und eine SQL-Ausführung für DB und ein Memo der grundlegenden Verarbeitung für Statistiken 2019
Erstellen einer Umgebung für Python und maschinelles Lernen (macOS)
Bau einer Entwicklungsumgebung für die Choreonoid-Werkstatt
Beginnen Sie in 30 Minuten mit Python! Erstellen Sie eine Entwicklungsumgebung und lernen Sie grundlegende Grammatik
Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (1) [Umgebungskonstruktion]
[Basic] Vereinheitlichen Sie alles von der Tabellierung bis zur Dashboard-Erstellung! Entwicklung von Datenvisualisierungsanwendungen mit Python und Dash ~ Übersicht über Dash, Umgebungskonstruktion, Beispielausführung ~
Installation von Python 3 und Flask [Zusammenfassung der Umgebungskonstruktion]
Python-Entwicklungsumgebung - Verwendung von Pyenv und Virtualenv-
Grundlegende Geschichte der Vererbung in Python (für Anfänger)
Erstellen Sie mit Python eine interaktive Umgebung für maschinelles Lernen
Erstellen Sie mit Python eine Entwicklungsumgebung für maschinelles Lernen
[Python] Kapitel 01-02 Über Python (Ausführung und Installation der Entwicklungsumgebung)
Aufbau einer Python-Entwicklungsumgebung
python2.7 Konstruktion der Entwicklungsumgebung
Entwicklungsumgebung in Python
Überprüfen Sie die Funktionsweise von Python für .NET in jeder Umgebung
Erstellen einer lokalen Python-Entwicklungsumgebung Teil 2 (pyenv-virtualenv, Pip-Nutzung)
[Hinweis] Liste der grundlegenden Befehle zum Erstellen einer Python / Conda-Umgebung
Erstellen einer Entwicklungsumgebung für Android-Apps - Erstellen von Android-Apps mit Python
[Tipps] Probleme und Lösungen bei der Entwicklung von Python + Kivy
Aufbau einer Cortex-M-Entwicklungsumgebung für TOPPERS mit Raspeye
Aufbau einer Python-Umgebung für Mac
Python-Umgebungskonstruktion und TensorFlow
[MEMO] [Entwicklung der Entwicklungsumgebung] Python
[Zum Organisieren] Python-Entwicklungsumgebung
Umgebungskonstruktion von Python2 & 3 (OSX)
Erstellen und testen Sie eine CI-Umgebung für mehrere Versionen von Python
Wie wäre es mit Anaconda zum Erstellen einer maschinellen Lernumgebung mit Python?
Erstellen einer lokalen Python-Entwicklungsumgebung Teil 1 (pyenv, pyenv-virtualenv, pip-Installation)
Python + Unity Verbesserte Erstellung von Lernumgebungen
Python: Anwendung des überwachten Lernens (Rückkehr)
Optionen für die Python-Entwicklungsumgebung für Mai 2020
Aufbau einer Python-Entwicklungsumgebung unter macOS
Emacs-Einstellungen für die Python-Entwicklungsumgebung
Erstellen einer Umgebung für Python3.8 auf einem Mac
Funktionssynthese und Anwendung in Python
Python3 TensorFlow für Mac-Umgebungskonstruktion
Konstruktionsnotiz für die Emacs Python-Entwicklungsumgebung
Bereiten Sie eine Python-Entwicklungsumgebung für jedes Projekt in einer Windows-Umgebung vor (VSCode + virtualEnvWrapper + Pylint).
Diagramm der Geschichte der Anzahl der Ebenen des tiefen Lernens und der Änderung der Genauigkeit
Ein leicht verständlicher Vergleich der grundlegenden Grammatik von Python und Go
Realisieren Sie mit Docker und Vagrant die Umgebungskonstruktion für "Deep Learning von Grund auf neu"
Entwicklung und Bereitstellung der REST-API in Python mit Falcon Web Framework
Vorgehensweise von der AWS CDK (Python) -Entwicklung bis zur AWS-Ressourcenkonstruktion * Für Anfänger
Implementierung des Partikelfilters durch Python und Anwendung auf das Zustandsraummodell
Erläuterung zum Erstellen einer Anwendung zum Anzeigen von Bildern und Zeichnen mit Python
Python: Vorverarbeitung beim maschinellen Lernen: Umgang mit fehlenden / Ausreißern / unausgeglichenen Daten
[Python] Grund für den Typ "int32" in Numpy (Windows-Umgebung) (Stand September 2020)