Historique d'apprentissage pour participer au développement d'applications d'équipe avec Python ~ Supplément d'éléments de base et construction de l'environnement jupyterLab ~

Article précédent

Historique d'apprentissage pour participer au développement d'applications d'équipe en Python ~ Finition de "Introduction à Python3" de l'apprentissage paiza ~

Supplément à l'article précédent

Le concept de tranches

python


word = 'hello'
print(word[0:2]) #Extrait du 0ème élément au 2ème élément

##Résultat du traitement
he

Spécifier la position d'un élément avec un soi-disant index semble être appelé slicing en Python.

Bien sûr, il y a une notation de tranche dans la liste

python



wordlist = ['apple','bike','cake','drum','electric']
print(wordlist[2:]) #Extrait du deuxième élément à la fin
print(wordlist[:2]) #Extrait du premier au deuxième élément

##Résultat du traitement

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

À propos de la liste

Ajouter un élément à la fin de la liste .append()

Supprimer l'élément spécifié dans l'argument de la liste .remove()

Supprimer tous les éléments de la liste .clear()

Ajouter x au i-ème dans la liste .insert(i,x)

python



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

##Résultat de sortie
['apple', 'bike', 'cake', 'drum', 'electric', 'falcon']

Renvoie l'index du premier élément avec la valeur définie dans l'argument .index()

python



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

##Résultat de sortie
3

Puisque la liste a également le concept d'id, une fonction pour faire un duplicata .copy()

python



#Exemple de copie de la liste et d'édition de la copie mais échec car les identifiants sont les mêmes

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

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

##Résultat de sortie
['admin', 'bike', 'cake', 'drum', 'electric']
['admin', 'bike', 'cake', 'drum', 'electric']

#Succès

wordlist = ['apple','bike','cake','drum','electric']
copylist = wordlist.copy()
print(wordlist is not copylist) #Vérifiez que la liste de mots n'est pas copylist

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


##Résultat de sortie
True
['apple', 'bike', 'cake', 'drum', 'electric']
['admin', 'bike', 'cake', 'drum', 'electric']

mata Les boucles de deux listes ou plus peuvent être représentées à l'aide de zip.

Par exemple, l'exemple suivant

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 )

Préparez deux variables de compteur et répétez l'affectation de list1 et list2 respectivement. Ensuite, cela devient comme suit.

##Résultat de sortie

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

Délimiteur d'instruction (point-virgule)

En Python, il n'est pas nécessaire d'ajouter un point-virgule à la fin d'une phrase, mais il peut être utilisé comme délimiteur d'instructions. En d'autres termes

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

Cela signifie que les définitions de variables peuvent être regroupées. Bien sûr, si vous les mettez tous sur une seule ligne, la lisibilité sera considérablement altérée, alors soyez prudent.

pause et continue

Python a également une pause et continue.

python



i = 0

while True:
    i += 1

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

print('Terminer le processus')

Si i est supérieur à 10, le traitement est interrompu, et si i est impair, le traitement est renvoyé à i + = 1. Ensuite, seulement 10 ou moins seront imprimés.

Type de taple et type de liste

Les listes sont comme des tableaux, mais Python a un concept similaire de types de tapple.

La différence avec la liste est que ** les éléments stockés ne peuvent pas être mis à jour / ajoutés / supprimés **. Cependant, à l'inverse, on comprend qu'il stocke des valeurs constantes.

Vous pouvez convertir d'autres types en listes ou en taples avec list () et tuple ().

python



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

Les valeurs générées par la chaîne de caractères et la plage (à partir de 1 et incrémenté de 2 sont acquises dans la plage inférieure à 11) sont stockées respectivement dans le type de liste et la plage. À propos, si vous convertissez une chaîne de caractères en liste ou en taple, elle sera stockée séparément pour chaque caractère.

Le déballage peut être utilisé si vous souhaitez que chaque variable se voit attribuer un élément stocké dans une liste ou une taple.

python



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

##Résultat de sortie

apple

Notez qu'une erreur se produira si words = a, b, c.

Si vous souhaitez combiner plusieurs listes en une liste bidimensionnelle, utilisez 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)

##Résultat de sortie
[('apple', 'docter', 'game', 'jack'), ('bike', 'egg', 'heart', 'king'), ('corn', 'falcon', 'icon', 'love')]

Au stade de l'exécution de zip (), ce n'est qu'un objet, donc je vais le convertir en liste avec la fonction list. Et, comme vous pouvez le voir dans le résultat de sortie, lorsque vous utilisez zip (), Vous pouvez voir que les éléments de chaque liste sont restaurés pour chaque index. En d'autres termes

python



print(result[0])

##Résultat de sortie
('apple', 'docter', 'game', 'jack')

Il se trouve que. Notez qu'il s'agit d'un processus différent de celui de la création d'une liste avec l'instruction for.

Définir le type

Considérez-le comme un ensemble de termes mathématiques ou un groupe. En d'autres termes, c'est une collection d'éléments qui ne se chevauchent pas. Par exemple

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

C'est comme ça. Les listes sont représentées par «[]» et les taples sont représentés par «()», tandis que les ensembles sont représentés par «{}». Cependant, il prend la forme de x = {}, et quand aucun élément n'y est enregistré ou lorsque l'élément enregistré est une clé: valeur, il devient un dictionnaire au lieu d'un ensemble. En outre, un ensemble peut être enregistré en tant que taple, mais une liste ne peut pas être enregistrée.

Résumé de la liste, tapple, set, dictionnaire

liste

-Si-appelé tableau. -Les éléments peuvent être mis à jour, ajoutés et supprimés. -Ajouter ʻappend () et supprimer remove () . -La conversion d'autres types vers une liste est list ()`.

Taple

-Une image d'un tableau qui stocke des valeurs constantes. -Les éléments ne peuvent pas être mis à jour, ajoutés ou supprimés. -La conversion des autres types en tapple est tuple ().

ensemble

-Un soi-disant tableau d'ensemble (groupe). -Les éléments avec le même contenu ne peuvent pas être enregistrés plus d'une fois. -Les plans peuvent être considérés comme des éléments, mais pas les listes. -La conversion d'autres types vers des ensembles est set (). -À la différence des listes et des taples, il n'y a pas d'ordre d'alignement, donc il n'y a pas d'index **. **. -Ajouter ʻadd () ʻet supprimerremove (). -Un ensemble peut mettre à jour, ajouter et supprimer des éléments, mais certains types ne peuvent pas le faire même dans le même ensemble.

dictionnaire

-Arrangement dit associatif. L'élément doit être sous la forme clé: valeur. -Utilisez keys () pour récupérer les clés, value () pour récupérer les valeurs, et ʻitems () `pour récupérer les deux en même temps.

Il se trouve que.

Supplément de module aléatoire

Le module aléatoire peut être utilisé non seulement pour les valeurs numériques mais aussi pour les séquences telles que les taples et les listes.

Obtenez un élément aléatoirement de la séquence avec choice (). Obtient k éléments avec des doublons de la séquence définie dans l'argument avec choix (seq, k = 1) et les renvoie sous forme de liste. sample (seq, k) récupère k éléments de la séquence et les renvoie sous forme de liste sans duplication. Vous pouvez trier la séquence avec shuffle ().

En d'autres termes

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)

##Résultat de sortie(Puisqu'il s'agit d'un module aléatoire, le résultat change à chaque fois qu'il est exécuté.)

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

Notation d'inclusion

python



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

Comme je l'ai fait la dernière fois, si vous créez une instruction for dans la liste comme décrit ci-dessus et mettez l'expression de l'élément que vous souhaitez stocker à plusieurs reprises dans la liste avant, vous pouvez facilement créer une chaîne numérique. Par exemple, dans l'exemple ci-dessus, les valeurs au carré de 0 à 9 seront stockées dans la liste. Il peut également être utilisé comme un ensemble, auquel cas un ensemble peut être généré.

python



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

##Résultat de sortie
{0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28}

Du point de vue de la génération d'un ensemble, il devrait y avoir une régularité dans ce qui est généré (ce qui précède est un ensemble pair dans la plage de 0≤x <30) afin de le distinguer d'une simple liste.

Dans le cas d'un dictionnaire, c'est le cas.


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

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

##Résultat de sortie
{'APPLE': 5, 'BIKE': 4, 'COW': 3, 'DECADE': 6, 'EGOSTIC': 7}

Tout d'abord, créez une clé avec une liste. C'est bien avec les tapples. Et définissez la forme de «clé: valeur» avant pour. Cette fois, la liste créée est affectée à la variable de compteur lang. Ensuite, sur la base de ce lang, la propriété est créée comme la capitale de la chaîne de caractères stockée dans languages: la valeur du nombre de caractères, et le dictionnaire est créé à plusieurs reprises.

Créer un environnement Jupyter Lab avec Docker

Procédure de construction

1. Création d'un Dockerfile

FROM jupyter/datascience-notebook:7a0c7325e470 #Spécifier une image

COPY requirements.txt tmp/requirements.txt #Un fichier répertoriant les packages à installer.
RUN pip install -r tmp/requirements.txt #pip est une commande pour installer des packages Python. Voici les exigences.Installez les packages répertoriés dans txt.

EXPOSE 8888

À titre de révision, FROM sélectionne l'image de base, c'est-à-dire spécifie l'image que vous souhaitez utiliser. EXPOSE ouvre le port spécifié. Bien sûr, si vous n'avez pas créé d'environnement Docker sur Mac ou Windows 10 Pro, vous devez également définir la redirection de port côté Virtual Box.

2. Créez docker-compose.yml


version: "3.7" # docker-compose.Spécifiez la version du format de fichier yml
services:
  jupyterlab: #Services à gérer
    build: .
    container_name: jupyterlab #Nom du conteneur
    environment:
      - JUPYTER_ENABLE_LAB=yes #Activer jupyterLab
    ports:
      - "8888:8888" #Spécifier le port géré par le service
    volumes:
      - ./JupyterLab:/home/jovyan/work #Configuration des répertoires à partager / synchroniser. Répertoire côté hôte:Répertoire du côté de l'espace virtuel
    command: start.sh jupyter lab --NotebookApp.token='' #Omettre l'entrée du jeton de connexion lors du démarrage du conteneur


Je ne suis toujours pas familier avec Docker, j'ai donc essayé diverses choses en recherchant sur Google, et le sens de la création de docker-compose.yml est que si vous essayez de le faire avec docker run, vous devrez faire de longues options plus tard Il semble y avoir un sens. Et le moyen le plus rapide de créer un environnement est d'extraire l'image du fonctionnaire, de créer un conteneur avec l'option avec docker run et de le démarrer là-bas, mais après tout, cela s'est habitué à Docker J'ai senti que c'était la cause de rester coincé dans le marais si je n'étais pas une personne, et de gérer le conteneur avec deux fichiers, Dockerfile (j'ai entendu dire que je ne l'écrirais peut-être pas récemment) et docker-compose.yml, au contraire, lisibilité et extension plus tard J'ai pensé que ce serait bien en termes de facilité.

Lisez et écrivez des fichiers en Python tout en utilisant JupyterLab.

Confirmation du code de caractère

python



import sys
print(sys.getdefaulttencoding())

Lire le fichier

python



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

La lecture et l'écriture de fichiers en Python commencent par ʻopen () et se terminent par close () , mais pour éviter d'oublier close () , utilisez with open () `.

Lire les données du fichier sous forme de liste

python



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

#Ou

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

Assignez le fichier à la variable f, faites-en un objet et utilisez la méthode readlines (). Ou utilisez la méthode readline () dans une boucle pour lire ligne par ligne.

Limitez le nombre de lignes lues avec 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

#Lors de la liste ligne par ligne séparés par des virgules

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

#Retirez les valeurs numériques des données et essayez de calculer

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("Population de Hokkaido", s ,"Homme")

##Extrait partiel des données lues ci-dessus

['Hokkaido', 'Sapporo', '1913545']
['Hokkaido', 'Ville de Hakodate', '279127']
['Hokkaido', 'Ville d'Otaru', '131928']
['Hokkaido', 'Ville d'Asahikawa', '347095']
['Hokkaido', 'Ville de Muroran', '94535']
['Hokkaido', 'Ville de Kushiro', '181169']


csv.reader () fonctionne commesplit (). Il est recommandé de l'utiliser si les données sont au format CSV. Concernant la partie calcul, d'abord à partir de l'extrait des données à lire, l [0] indique la préfecture, c'est-à-dire si l [0] ==" Hokkaido ": détermine la plage de données à lire. Et vous pouvez voir que «l [2]» contient la population, c'est-à-dire des données numériques. Cependant, comme il est stocké sous forme de chaîne de caractères, il est utilisé après avoir été numérisé avec ʻint () `. Par conséquent, si vous écrivez la phrase ci-dessus, vous pouvez calculer la population d'Hokkaido dans les données.

Lire des fichiers avec un encodage différent

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

Pour lire un fichier autre que utf-8, spécifiez éventuellement le format de fichier ʻencoding = 'que vous voulez lire'. Spécifiez également le type de saut de ligne avec newline`. Cette fois, le saut de ligne est spécifié dans Windows.

Ecrire un fichier

python



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

#Écriture de données multilignes

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

#Écrire des données CSV

import csv

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

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


##l'instruction for peut également être utilisée


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)


Site de référence

L'histoire de la tentative de création d'un environnement d'apprentissage automatique à l'aide de Docker

Création d'un environnement de conteneur pour Jupyter Lab

Recommended Posts

Historique d'apprentissage pour participer au développement d'applications d'équipe avec Python ~ Supplément d'éléments de base et construction de l'environnement jupyterLab ~
Historique d'apprentissage pour participer au développement d'applications d'équipe en Python ~ Page d'index ~
Historique d'apprentissage pour participer au développement d'applications d'équipe avec Python ~ Tutoriel Django 5 ~
Historique d'apprentissage pour participer au développement d'applications d'équipe avec Python ~ Tutoriel Django 4 ~
Historique d'apprentissage pour participer au développement d'applications d'équipe avec Python ~ Tutoriel Django 1, 2, 3 ~
Historique d'apprentissage pour participer au développement d'applications d'équipe avec Python ~ Tutoriel Django 6 ~
Historique d'apprentissage pour participer au développement d'applications d'équipe en Python ~ Tutoriel Django 7 ~
Historique d'apprentissage pour participer au développement d'applications d'équipe en Python ~ Pensez un peu à la définition des exigences ~
Apprentissage de l'histoire pour participer au développement d'applications en équipe avec Python ~ Après avoir terminé "Introduction à Python 3" de paiza learning ~
Exemple de construction d'environnement Python et d'exécution SQL vers DB et mémo de traitement de base pour les statistiques 2019
Créer un environnement pour Python et l'apprentissage automatique (macOS)
Construction d'un environnement de développement pour l'atelier Choreonoid
Commencez avec Python en 30 minutes! Créer un environnement de développement et apprendre la grammaire de base
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (1) [Construction de l'environnement]
[De base] Unifiez tout, de la tabulation à la création du tableau de bord! Développement d'applications de visualisation de données avec Python et Dash ~ Présentation de Dash, construction d'environnement, exécution d'exemples ~
Installation de Python 3 et Flask [Résumé de la construction de l'environnement]
environnement de développement python -utilisation de pyenv et virtualenv-
Histoire de base de l'héritage en Python (pour les débutants)
Créez un environnement interactif pour l'apprentissage automatique avec Python
Créer un environnement de développement d'applications d'apprentissage automatique avec Python
[Python] Chapitre 01-02 À propos de Python (Exécution et installation de l'environnement de développement)
Construction de l'environnement de développement Python
Construction de l'environnement de développement python2.7
Environnement de développement en Python
Vérifiez le fonctionnement de Python pour .NET dans chaque environnement
Création d'un environnement de développement local Python, partie 2 (pyenv-virtualenv, utilisation de pip)
[Note] Liste des commandes de base pour la construction d'un environnement python / conda
Création d'un environnement de développement pour les applications Android - Création d'applications Android avec Python
[Astuces] Problèmes et solutions dans le développement de python + kivy
Construction d'un environnement de développement Cortex-M pour TOPPERS utilisant Raspeye
Construction de l'environnement Python pour Mac
Construction d'environnement Python et TensorFlow
[MEMO] [Construction de l'environnement de développement] Python
[Pour organiser] Environnement de développement Python
Construction de l'environnement de python2 & 3 (OSX)
Créer et tester un environnement CI pour plusieurs versions de Python
Que diriez-vous d'Anaconda pour créer un environnement d'apprentissage automatique avec Python?
Création d'un environnement de développement local Python Partie 1 (installation de pyenv, pyenv-virtualenv, pip)
Construction d'un environnement d'apprentissage amélioré Python + Unity
Python: Application de l'apprentissage supervisé (retour)
Options d'environnement de développement Python pour mai 2020
Construction de l'environnement de développement Python sur macOS
Paramètres Emacs pour l'environnement de développement Python
Construire un environnement pour python3.8 sur Mac
Synthèse de fonctions et application en Python
Construction de l'environnement Python3 TensorFlow pour Mac
Mémo de construction de l'environnement de développement Emacs Python
Préparer un environnement de développement Python pour chaque projet dans un environnement Windows (VSCode + virtualEnvWrapper + Pylint)
Graphique de l'historique du nombre de couches de deep learning et du changement de précision
Comparer la grammaire de base de Python et Go d'une manière facile à comprendre
Réaliser la construction d'environnement pour "Deep Learning from scratch" avec docker et Vagrant
Développement et déploiement de l'API REST en Python à l'aide de Falcon Web Framework
Procédure du développement AWS CDK (Python) à la construction de ressources AWS * Pour les débutants
Implémentation du filtre à particules par Python et application au modèle d'espace d'états
Explication de la création d'une application pour afficher des images et dessiner avec Python
Python: prétraitement en machine learning: gestion des données manquantes / aberrantes / déséquilibrées
[Python] Raison de dtype "int32" dans Numpy (environnement Windows) (à partir de septembre 2020)