{"id":3166,"date":"2026-05-11T11:14:41","date_gmt":"2026-05-11T09:14:41","guid":{"rendered":"https:\/\/labodemaths.fr\/WordPress3\/?p=3166"},"modified":"2026-05-12T09:28:28","modified_gmt":"2026-05-12T07:28:28","slug":"nsi-knn-iris-avec-csv","status":"publish","type":"post","link":"https:\/\/labodemaths.fr\/WordPress3\/nsi-knn-iris-avec-csv\/","title":{"rendered":"NSI, KNN IRIS avec CSV"},"content":{"rendered":"\n<p>compl\u00e9ter le code de ces diff\u00e9rentes fonctions<\/p>\n\n\n\n<p>avec comme fichier csv :<\/p>\n\n\n\n<p><a href=\"https:\/\/pixees.fr\/informatiquelycee\/n_site\/asset\/iris.csv\">https:\/\/pixees.fr\/informatiquelycee\/n_site\/asset\/iris.csv<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import csv\nliste_fleurs=&#91;]\nwith open('iris.csv', newline='') as csvfile:\n    spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')\n    for row in spamreader:\n        liste_fleurs.append(row)\n\n\ndef transformation(chaine):\n    '''\n    &gt;&gt;&gt;transformation(\"1.4,2,0\")\n    &#91;1.4,2,0]\n    '''\n  \n\ndef transformation_liste(liste):\n    '''\n    transforme la liste fleurs en un liste\n    de dictionnaires\n    &gt;&gt;&gt;transformation_liste(liste_fleurs)&#91;0]\n    {'petal_length':1.4,'petal-width':0.2,\"species\":0}\n    '''\n    \ndef distance(fleur1,fleur2):\n\n\n    \n\n\n    \n<\/code><\/pre>\n\n\n\n<p>Proposition correction<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import csv\r\nliste_fleurs=&#91;]\r\nwith open('iris.csv', newline='') as csvfile:\r\n    spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')\r\n    for row in spamreader:\r\n        liste_fleurs.append(row)\r\n\r\n\r\ndef transformation(chaine):\r\n    '''\r\n    >>>transformation(\"1.4,2,0\")\r\n    &#91;1.4,2.0,0.0]\r\n    '''\r\n    retour=chaine.split(\",\")\r\n    return &#91;float(val) for val in retour]\r\n  \r\n\r\ndef transformation_liste(liste):\r\n    '''\r\n    transforme la liste fleurs en un liste\r\n    de dictionnaires\r\n    >>>transformation_liste(liste_fleurs)&#91;0]\r\n    {'petal_length':1.4,'petal-width':0.2,\"species\":0}\r\n    '''\r\n    retour=&#91;]\r\n    for i in range(1,len(liste)):\r\n        dico={}\r\n        fleur=transformation(liste&#91;i]&#91;0])\r\n        dico&#91;'petal_length']=fleur&#91;0]\r\n        dico&#91;'petal_width']=fleur&#91;1]\r\n        dico&#91;'species']=fleur&#91;2]\r\n        retour.append(dico)\r\n    return retour\r\n\r\nliste_fleurs=transformation_liste(liste_fleurs)\r\n\r\ndef distance(fleur1,fleur2):\r\n    '''\r\n    calcule la distance entre 2 fleurs\r\n    '''\r\n    x1=fleur1&#91;'petal_length']\r\n    y1=fleur1&#91;'petal_width']\r\n    x2=fleur2&#91;'petal_length']\r\n    y2=fleur2&#91;'petal_width']\r\n    return ((x1-x2)**2+(y1-y2)**2)**0.5\r\n\r\ndef plus_proches_voisins(fleur,liste_fleurs):\r\n    '''\r\n    renvoie la liste des plus proches\r\n    voisins par distance croissante\r\n    '''\r\n    liste=liste_fleurs.copy()\r\n    retour=&#91;]\r\n    # tant que retour n'a pas la taille voulue\r\n    while len(retour)!=len(liste_fleurs):\r\n    # on cherche la fleur la plus proche\r\n        d_min=distance(fleur,liste&#91;0])\r\n        fleur_min=liste&#91;0]\r\n        for f in liste:\r\n            if distance(fleur,f)&lt;d_min:\r\n                d_min=distance(fleur,f)\r\n                fleur_min=f\r\n    # on l'ajoute au retour\r\n        retour.append(fleur_min)\r\n    # on l'enleve de la liste\r\n        liste.remove(fleur_min)\r\n    # on renvoie ce qu'il faut\r\n    return retour\r\n\r\nfleur={'petal_length':2.5,'petal_width':0.75}\r\nl=plus_proches_voisins(fleur,liste_fleurs)\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>compl\u00e9ter le code de ces diff\u00e9rentes fonctions avec comme fichier csv : https:\/\/pixees.fr\/informatiquelycee\/n_site\/asset\/iris.csv Proposition correction<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[57],"tags":[],"_links":{"self":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/3166"}],"collection":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/comments?post=3166"}],"version-history":[{"count":5,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/3166\/revisions"}],"predecessor-version":[{"id":3172,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/3166\/revisions\/3172"}],"wp:attachment":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/media?parent=3166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/categories?post=3166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/tags?post=3166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}