You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: notebooks/dashboards/streamlit/README-streamlit-nb.md
-3Lines changed: 0 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,9 +25,6 @@ mais voici pour commencer un aperçu rapide de ce qu'on peut en faire
25
25
26
26
la bibliothèque `streamlit` (<https://streamlit.io/>) est un utilitaire qui permet de réaliser rapidement des applis de type *dashboard* - c'est-à-dire par exemple une visualisation interactive où on peut faire varier différents paramètres d'entrée, pour explorer interactivement des données
* quand on utilise une API, comme on vient de le faire pour aller chercher la position de la rue des bernardins, on doit **passer des paramètres** à l'API
259
256
et pour faire ça dans une requête http, il y a **deux mécanismes: GET et POST**
260
257
@@ -303,22 +300,26 @@ sauf que nous, on ne veut pas utiliser `curl`, on veut faire cette requête en P
303
300
2. le résultat - toujours au format csv - pourra être également transformé en dataframe
304
301
3. qu'il ne restera plus qu'à `merge` (ou `join` si vous préférez) avec la dataframe de départ, pour ajouter les résultats de la géolocalisation dans les données de départ
305
302
pour cette étape on peut envisager de ne garder que certaines colonnes de la géolocalisation (assez bavarde par ailleurs), je vous recommande de conserver uniquement:
303
+
306
304
*`latitude`, `longitude` - *of course*
307
305
*`result_city` pour pouvoir vérifier la validité des résultats - ici on devrait toujours avoir `Paris`
308
306
*`result_type` qui devrait toujours renvoyer `housenumber`, ça permet à nouveau de vérifier qu'on a bien une adresse connue
309
307
310
308
+++
311
309
312
310
````{tip}
311
+
313
312
* pour envoyer un POST avec des paramètres, on peut faire
dans lequel `file_like` désigne le résultat d'un `open()`
322
+
322
323
* enfin, `pd.read_csv` s'attend à un paramètre de type fichier, i.e. du genre de ce qu'on obtient avec `open()`
323
324
et du coup pour reconstruire une dataframe à partir du texte obtenu dans la requête http, on a deux choix
324
325
1. soit on commence par sauver le texte dans un fichier temporaire (juste faire attention à choisir un nom de fichier qui n'existe pas, de préférence dans un dossier temporaire, voir le module `tempfile`)
@@ -334,8 +335,6 @@ je vous recommande d'y aller pas à pas, commencez par juste l'étape 1, puis 1
334
335
c'est utile aussi de commencer par une toute petite dataframe pour ne pas attendre des heures pendant la mise au point...
Copy file name to clipboardExpand all lines: notebooks/numpy-tps/images/README-images2-nb.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -131,6 +131,7 @@ on obtiendrait cette fois (observez la taille en pixels de l'image)
131
131
132
132
```{admonition} indice
133
133
:class: tip dropdown
134
+
134
135
* votre fonction retourne un tuple avec deux morceaux: le nombre de lignes, et le nombre de colonnes
135
136
* dans un premier temps, vous pouvez vous contenter d'une version un peu brute: on pourrait utiliser juste la racine carrée, et toujours fabriquer des carrés
136
137
@@ -164,6 +165,7 @@ def rectangle_size(n):
164
165
165
166
````{admonition} indices
166
167
:class: dropdown
168
+
167
169
* sont potentiellement utiles pour cet exo:
168
170
* la fonction `np.indices()`
169
171
* [l'indexation d'un tableau par un tableau](https://numerique.info-mines.paris/numpy-optional-indexing-nb/)
@@ -346,6 +348,7 @@ B' = 0.272 * R + 0.534 * G + 0.131 * B
346
348
* dans notre cas on suppose qu'en entrée on a des entiers non-signé 8 bits
347
349
* mais attention, les calculs vont devoir se faire en flottants, et pas en uint8
348
350
pour ne pas avoir, par exemple, 256 devenant 0
351
+
349
352
* toutefois on veut tout de même en sortie des entiers non-signé 8 bits !
350
353
351
354
ça signifie qu'il va sans doute vous falloir faire un peu de gymnastique avec les types de vos tableaux
@@ -234,16 +229,12 @@ améliorer un peu pour générer une courbe avec un fréquence qui croit (ou dé
234
229
écrire une fonction `sine_linear(freq1, freq2, duration)`
235
230
236
231
```{code-cell} ipython3
237
-
:tags: []
238
-
239
232
# votre code
240
233
def sine_linear(freq1, freq2, duration):
241
234
...
242
235
```
243
236
244
237
```{code-cell} ipython3
245
-
:tags: []
246
-
247
238
# décommenter pour écouter
248
239
#MyAudio(sine_linear(440, 660, 3))
249
240
```
@@ -364,6 +355,7 @@ ce qui nous amène à une petite digression: profitons-en pour regarder un peu c
364
355
l'encodage des **entiers signés** fonctionne comme suit; on regarde ici les types `int8` et `uint8` car c'est plus simple, le principe est exactement le même pour des tailles plus grandes
365
356
366
357
il y a deux types d'encodages pour les entiers:
358
+
367
359
*`uint8` (le `u` signifie *unsigned*): les entiers **non signés** reposent sur un encodage "naturel": on décompose en base 2, et donc avec 8 bits, on peut aller **de 0 à 255**
368
360
*`int8`: par contre pour les entiers **signés**, on va devoir utiliser **un bit comme bit de signe**, ce qui limite le spectre de ce qu'il est possible d'encoder; avec en tout 8 bits on peut encoder de **-128 à 127 inclus**
0 commit comments