Physique & Chimie au lycée

Cours de physique-chimie pour les classes de 1ère et Terminale

Sommaire
SP-1 ES-1
SP-T ES-T
3e SNT
Divers Annales
Contact

4. Données structurées & traitement des données

Une donnée est une valeur (au sens large, pas forcément un nombre) associé à un objet, une personne, un événement, une œuvre, un phénomène, etc. Dans un monde numérique, la quantité de données disponibles est en constante augmentation. Les outils pour traiter ces données (c’est-à-dire en extraire de l’information intéressante) sont de plus en plus puissants et complexes.

Données structurées

  • Identifier les principaux formats et représentations de données.
  • Identifier les différents descripteurs d’un objet.
  • Distinguer la valeur d’une donnée de son descripteur.

Pour pouvoir manipuler des données efficacement, il faut qu’elles soient structurées, c’est-à-dire organisées.

Si vous voulez décrire, par exemple, le personnage d’un film, vous pouvez écrire un texte qui contiendra des informations, donc des données. Ces données ne sont pas structurées. Une personne qui veut obtenir des informations sur ce personnage à partir de votre texte devra l’analyser.

Par contre, vous pouvez présenter ce personnage sous forme de « fiche » avec plusieurs descripteurs : le nom de l’acteur qui interprète le personnage, l’âge du personnage, son métier, etc.
Sous cette forme, on parle de données structurées.

Structure de données

Des données structurées sont composées, pour chaque « objet » (au sens large) qu’elles décrivent, de descripteurs (qui identifie le type de données) et de valeurs associées à chaque descripteur.

Par exemple, des données sur une personne pourront être composées de 2 descripteurs (Nom et n° de téléphone) associés à 2 valeurs.

Nom Téléphone
Dupović Goran 063 12 34 567

Une collection de données est contituée de données sur plusieurs objets, ces données partageant la même structure.

Nom Téléphone
Dupović Goran 063 12 34 567
Vapatrović Dejan 061 76 54 321
Ilisić Stefan 064 71 52 346

Une base de données est constituée de plusieurs collections de données reliées entre elles. Par exemple, on pourrait imaginer une table avec comme données les noms des différents employés d’une entreprises.

Fonction Nom
Chef-comptable Dupović Goran
Responsable sécurité Vapatrović Dejan
Responsable technique Ilisić Stefan

Le croisement de ces deux tables permet d’obteir, par exemple, le numéro de téléphone du responsable technique de l’entreprise.

C’est tout l’intérêt et le rôle des bases de données : fournir, à la demande, une ou plusieurs données à partir de nombreuses tables.

Formats de données structurées

Pour un être humain, l’organisation de données structurées se fait plutôt sous forme de tableaux, qui ont l’avantage d’être faciles à lire.

Mais le traitement des données se fait essentiellement à l’aide de programmes informatiques. Il existe donc plusieurs formats pour coder des données structurées.

Ces différents formats peuvent se diviser en deux catégories : soit il s’agit de listes (c’est-à-dire une liste de valeurs sans descripteur – mais alors il faut indiquer quels sont les descripteurs au début des données), soit – et c’est la solution la plus fréquente – il s’agit de couples (descripteur : attribut)

Le format CSV

Voici les données de la table précédente au format CSV (Comma Separated Value) :


			Nom,Téléphone
Dupović Goran,063 12 34 567
Vapatrović Dejan,061 76 54 321
Ilisić Stefan,064 71 52 346

1. Comment un programme peut-il savoir à quoi correspondent chacune de ces valeurs ?

2. Comment peut-il séparer les différentes données ?

Le format JSON

Le format JSON est devenu un standard manipulable par de nombreux langages programmations différents, grâce à sa simplicité, sa souplesse et sa lisibilité par les êtres humains.


	[
		{Nom : "Dupović Goran", Téléphone : "063 12 34 567"},
		{Nom : "Vapatrović Dejan", Téléphone : "061 76 54 321"},
		{Nom : "Ilisić Stefan", Téléphone : "064 71 52 346"}
	]
	

1. Comment un programme peut-il savoir à quoi correspondent chacune de ces valeurs ?

2. Comment peut-il séparer les différentes données ?

Et en Python ?

Python gère les listes, que vous connaissez, mais aussi les dictionnaires, qui sont des listes de couples (descripteur : attribut) aussi appelé (clé : valeur).

Voici les données de la table précédente dans différents formats Python.


		# En liste
		[
			["Dupović Goran","063 12 34 567"],
			["Vapatrović Dejan", "061 76 54 321"],
			["Ilisić Stefan", "064 71 52 346"]
		]
		
		# En dictionnaire
		[
			{"Nom" : "Dupović Goran", "Téléphone" : "063 12 34 567"},
			{"Nom" : "Vapatrović Dejan", "Téléphone" : "061 76 54 321"},
			{"Nom" : "Ilisić Stefan", "Téléphone" : "064 71 52 346"}
		]
	
Pour en savoir plus, consultez la page sur les Bases de Python, que vous connaissez bien. Regardez également comment on utilise un boucle for sur une variable de type dictionnaire.

Activité : manipuler des données en Python

On dispose d’un relevé de notes de 5 élèves, au format Python


			notes = [
				{"nom" : "eleve_01", "math" : 10, "anglais" : 16, "français" : 12, "snt" : 8},
				{"nom" : "eleve_02", "math" : 12, "anglais" : 17, "français" : 14, "snt" : 12},
				{"nom" : "eleve_03", "math" : 8,  "anglais" : 13, "français" : 15, "snt" : 3},
				{"nom" : "eleve_04", "math" : 17, "anglais" : 14, "français" : 14, "snt" : 18},
				{"nom" : "eleve_05", "math" : 13, "anglais" : 15, "français" : 16, "snt" : 13},
			]
		

1. Décrire le format de ces données.

2. Écrire le code qui donne la note de math du 2e élève.

3. Écrire le code qui donne la note de math de chaque élève.

4. On veut rajouter les moyennes d’EPS. Elles sont, données dans le tableau ci-dessous.


			notes_eps = [
				{"nom" : "eleve_01", "eps" : 16},
				{"nom" : "eleve_02", "eps" : 15},
				{"nom" : "eleve_03", "eps" : 20},
				{"nom" : "eleve_04", "eps" : 12},
				{"nom" : "eleve_05", "eps" : 13},
			]
		

Écrire le code qui permet d’ajouter la note d’EPS à la variables notes.

5. Écrire le code qui rajoute deux à la moyenne de SNT si celle-ci est inférieure à 10.

Correction

1. Il s’agit d’une liste donc chaque élément est un dictionnaire.

2. notes[2]["math"]

3. Il faut maintenant écrire une boucle.


			for eleve in notes :
				print (eleve["math"])
		

4. Ici aussi il faut écrire une boucle qui va ajouter la note d’EPS dans la variable notes à chaque tour. Comme il s’agit de parcours deux tableaux différents, il vaut dans cette situation faire un boucle en augmenter une valeur i que l’on fait varier de 0 à 5 pour pouvoir associer les valeurs correspondantes dans les deux tableaux.


			for i in range(5) :
				notes[i]["eps"] = notes_eps[i]["eps"]
		

5. Encore une boucle, mais cette fois-ci avec une condition.


			for eleve in notes :
				if eleve["snt"] < 10 :
					eleve["snt"] += 2
		

Traitements des données

  • Utiliser un site de données ouvertes, pour sélectionner et récupérer des données.
  • Réaliser des opérations de recherche, filtre, tri ou calcul sur une ou plusieurs tables.

Pour cette partie, nous allons exploiter des données publiques rassemblées par l’État français concernant l’épidémie de COVID-19, sur le site data.gouv.fr.

Rendez-vous sur cette page et trouvez, puis téléchargez le fichier de données concernant le résultat des tests quotidiens réalisés sur l’ensemble du territoire français.

1. Dans quel format sont ces données ?

2. Avec quel logiciel les lire et les manipuler facilement ? Cherchez sur Internet.

Affichez les données dans le logiciel adapté et répondez aux questions suivantes :

1. Quel jour a-t-on eu le plus de test positif ?

2. Quel jour a-t-on réalisé le plus de test ?

3. Les femmes sont-elles plus contaminées que les hommes ?

4. Tracer le graphique montrant le nombre de cas positifs en fonction du temps. Peut-on dire qu’il y a eu une amélioration de la situation depuis le début de la compagne de vaccination, c’est-à-dire début janvier 2021 ?

Révision & entraînement

Voici deux petits exercices pour réviser le contrôle.

Python

La variable stock décrit un stock d’ordinateurs, avec leur nom, leur prix et la quantité disponible en stock


		stock = [
		{"nom" : "ordinateur_01", "prix" : 500, "qte" : 16},
		{"nom" : "ordinateur_02", "prix" : 800, "qte" : 8},
		{"nom" : "ordinateur_03", "prix" : 1200, "qte" : 3},
		]
	

1. Écrire le code qui va afficher le prix de l’ordinateur n°2.

2. Écrire le code qui va changer le prix de l’ordinateur n°3 en 1150 €

3. Écrire le code qui va permettre de vérifier si la quantité disponible d’un modèle d’ordinateur donné (basé sur la variable i qui peut prendre les valeurs 0, 1 ou 2) est inférieur à 5. Si cette quantité est inférieure à 5, le code doit affiché "peu de stock".

Correction 1. print(stock[1]["prix"])
2. stock[2]["prix"] = 1150
3. Vérifier les stocks disponibles :

		i = 2 # on donne la valeur qu’on veut à i
		if stock[i]["qte"] < 5 :
			print ("stock bas")
	

Données CSV

Ce fichier CSV contient des données sur une liste de 200 personnes.

1. Importer ces données dans un document Google Sheet (vous vous servirez de cette application lors du contrôle, donc apprenez à le faire : Fichier > Importer).

Classez les données (Menu Données) pour répondre aux questions suivantes :

2.a. Combien de personnes ont 30 ans ?

2.b. Combien y a-t-il de femmes dans la liste ?

2.c. Combien y a-t-il d’hommes de 25 ans originaire de Serbie ?

Correction

1. Allez sur Google Sheet. Ouvrez un document vide, puis, faites Fichier >: Importer et choisissez encore une fois Importer. Sélectionnez le fichier CSV que vous avez téléchargé préalablement sur votre ordinateur.
Pour le type de séparateur, choisissez Personnalisé et mettez un point-virgule « ; ».
Enfin, cliquez sur Ouvrir maintenant. Si vous obtenez un fichier avec 4 colonnes (personne, âge, sexe, pays), c’est que votre importation est réussie.

2. Pour trier les données, sélectionnez toutes les cellules remplies, puis allez dans Données > Trier une plage. Activez la case « Mes données ont des en-tête » si vous avez aussi sélectionné le titre des colonnes.
Enfin, vous faites Triez par âge.
Les réponse aux questions sont :
• Personnes de 30 ans : 4
• Nombre de femmes (triez sur la catégorie « sexe ») : 102
• Hommes de 25 ans originaire de Serbie : 2

Activité notée groupe 1

Python

La variable liste décrit une liste de personnes avec plusieurs attributs.


		liste = [
		{"nom" : "personne_01", "age" : 24, "nationalité" : "Chili"},
		{"nom" : "personne_02", "age" : 22, "nationalité" : "Chili"},
		{"nom" : "personne_03", "age" : 19, "nationalité" : "Chili"},
		{"nom" : "personne_04", "age" : 15, "nationalité" : "Chili"},
		{"nom" : "personne_05", "age" : 28, "nationalité" : "Argentine"},
		]
	

1. Écrire le code qui va afficher l’âge de la personne n°4.

2. Écrire le code qui va changer la nationalité de la personne n°5 en "Chili"

3. Écrire le code qui va permettre de vérifier si l’âge d’une personne donnée (basée sur la variable i qui peut prendre les valeurs 0, 1, 2, 3 ou 4) est inférieur à 18. Si cet âge est inférieur à 18, le code doit afficher "personne mineure".

Données CSV

Ce fichier CSV contient des données sur une liste de 150 personnes.

1. Importer ces données dans un document Google Sheet. Appelez-moi pour vérifier l’import de vos données.

Classez les données pour répondre aux questions suivantes :

2.a. Quel est le prix le plus élevé de la liste ?

2.b. Combien y a-t-il d’objet fabriqués en Chine ?

2.c. Quel est l’objet le moins cher fabriqué en Allemagne ?

Activité notée groupe 2

Python

La variable liste décrit une liste de voyages proposés par une agence avec plusieurs attributs.


		liste = [
		{"nom" : "voyage_01", "durée" : 14, "destination" : "Chili"},
		{"nom" : "voyage_02", "durée" : 21, "destination" : "Chili"},
		{"nom" : "voyage_03", "durée" : 7, "destination" : "Chili"},
		{"nom" : "voyage_04", "durée" : 10, "destination" : "Chili"},
		{"nom" : "voyage_05", "durée" : 22, "destination" : "Argentine"},
		]
	

1. Écrire le code qui va afficher la durée du voyage n°3.

2. Écrire le code qui va changer la destination du voyage n°5 en "Uruguay"

3. Écrire le code qui va permettre de vérifier si la durée d’un voyage donné (basée sur la variable i qui peut prendre les valeurs 0, 1, 2, 3 ou 4) est inférieur à 10. Si cette durée est inférieure à 10, le code doit afficher "voyage court".

Données CSV

Ce fichier CSV contient des données sur une liste de 150 personnes.

1. Importer ces données dans un document Google Sheet. Appelez-moi pour vérifier l’import de vos données.

Classez les données pour répondre aux questions suivantes :

2.a. Quel est le prix le plus élevé de la liste ?

2.b. Combien y a-t-il d’objet fabriqués en Chine ?

2.c. Quel est l’objet le moins cher fabriqué en Allemagne ?