Web log de Serge Boisse
On line depuis 1992 !
Le langage à la mode des années 2010-2020...
Avec Anaconda Navigator on peut lancer Jupyter notebook et jupyterLab. Dans ce dernier cas les notebooks se lancent dans le navigateur et se connectent à un serveur web local
JupyterLab :
Sur le PC de Françoise (Omen) mes notebooks sont dans Jupyter (Répertoire sur D)(lien privé) Et il n'y a pas Anaconda. On le lance donc avec un shell (powershell) et
jupyter lab --notebook-dir=D:/outils/jupyter
Ou alors avec l'IDE Pycharm
Notons que ces notebooks utilisent du markdown et qu'il possible d'exporter un notebook en .md ou en .pdf ! exemple en .md : Logique_pondérée OK pour les dataframes, Mais les graphes ne s'affichent pas...
voir Les admonitions dans jupyter lab(lien privé) et https://www.ibm.com/docs/en/watson-studio-local/1.2.3?topic=notebooks-markdown-jupyter-cheatsheet
A VOIR : le plugin Obsidian Jupyter plugin
et Google Colab
# latest_tutorial.py
import time
from reader import feed
def main():
"""Print the latest tutorial from Real Python"""
tic = time.perf_counter()
tutorial = feed.get_article(0)
toc = time.perf_counter()
print(f"Downloaded the tutorial in {toc - tic:0.4f} seconds")
print(tutorial)
if __name__ == "__main__":
main()
Ne marche pas dans Obsidian, reader inconnu. En fait il faut installer le package avec pip.... et même ainsi reader.feed est inconnu ?
Remarque : dans la ligne
print(f"...)
, lef"
précédant la chaîne indique qu'il s'agit d'une f_string, qui est un moyen pratique de formater une chaîne de texte. :0.4f est un spécificateur de format qui indique que le nombre, toc - tic, doit être imprimé comme un nombre décimal avec quatre décimales.
w, v
=
np.linalg.eig(matrice)
print(6//5) # 1
import sys
def hello(name) :
print("hello '",name,"'")
def main() :
hello(sys.argv[0]) ## vide !
if __name__ == '__main__' :
main()
la syntaxe if ... :
est différente de java ou javascript, de plus on a les mots clef and et or (pas de &&
ou de ||
) :
if time_hour >= 0 and time_hour <= 24:
print('Suggesting a drink option...')
if mood == 'sleepy' and time_hour < 10:
print('coffee')
elif mood == 'thirsty' or time_hour < 2:
print('lemonade')
else:
print('water')
"""
:multi = """It was the best of times.
It was the worst of times."""
print(multi)
# It was the best of times.
# It was the worst of times.
botte_de_foin.find(aiguille)
est l'équivalent de indexOf
on javascripts = "hello" # 1er index = 0
# s[1:4] est "ell"
# s[1:] correspond à "ello"
# s[:] est 'Hello'' : copie de chaine
# s[1:100] correspond à "ello". Un index trop grand est tronqué
address_book = [{'name':'N.X.', 'addr':'15 Jones St', 'bonus': 70},
{'name':'J.P.', 'addr':'1005 5th St', 'bonus': 400},
{'name':'A.A.', 'addr':'200001 Bdwy', 'bonus': 5},]
for person in address_book:
print(f'{person["name"]:8} || {person["addr"]:20} || {person["bonus"]:>5}')
# N.X. || 15 Jones St || 70
# J.P. || 1005 5th St || 400
# A.A. || 200001 Bdwy || 5
Les chaînes Python standards sont en Unicode.
ustring = 'A unicode \u018e string \xf1'
b = ustring.encode('utf-8')
print(b)
b'A unicode \xc6\x8e string \xc3\xb1' ## bytes of utf-8 encoding. Note the b-prefix.
t = b.decode('utf-8') ## Convert bytes back to a unicode string
print(t == ustring) ## It's the same as the original, yay!
#True
c'est une collection entre parenthèses
t = ("coucou","serge","françoise")
print(t)
entre {}
au lieu de []
pour les arrays.
d = {}
d["a"]= "alpha"
d["b"]= "beta"
d["o"]= "omega"
print(d["a"]) ## alpha
"a" in d ## True
print(d.keys())
print(d.values())
for k in sorted(d.keys()) :
print('key:', k, '-->', d[k])
print(d.items()) # rend une liste de tuples de taille 2
Avec le plugin obsidian-execute-code il est possible d'exécuter du python.
cf https://courspython.com/introduction-courbes.html
C'est très proche de MATLAB
Dans Obsidian on aussi Desmos
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 1, 300)
# créneau (variable)
def cr(n,x):
return np.mod(np.floor(x*2**n),2)
# littéraux
def li(n,x):
if n>0:
return cr(n,x)>0
return (1-cr(-n,x))>0
# clause
def cl(a,b,c,x):
return li(a,x)|li(b,x)|li(c,x)
plt.figure(figsize=(8,2)) #inches
#plt.plot(x,li(2,x))
#plt.plot(x,cl(2,3,-4,x))
plt.plot(x, cl(1,-2,-3,x)&cl(-1,-2,4,x)&cl(2,3,-4,x)&cl(-1,2,4,x))
plt.show()
intéressant
plt.figure(figsize=(8,2)) #inches
plt.plot(x, cl(1,-2,-3,x))
plt.show()
import matplotlib.pyplot as plt
from math import *
start = 0
end = 15
nb_points = 100
pas = (end - start)/(nb_points - 1)
X = [start + i * pas for i in range(nb_points)]
Y1 = [sin(i) for i in X]
Y2 = [cos(i) for i in X]
Y3 = [i**2/100 for i in X]
plt.plot(X, Y1, lw = 3, ls = ":", c = 'green', label='Sin')
plt.plot(X, Y2,lw = 3, ls = "--", c = "red", label ="Cos")
plt.plot(X, Y3, label="$x^2/100$")
plt.grid(visible=True)
plt.xlabel("position X")
plt.ylabel("valeur Y")
plt.title("exemple")
plt.legend()
plt.show()
import numpy as np
M = np.array([[1, 1, 1 ,0],[-1,1,0,1],[0,1,1,-1],[-1,-1,0,1],[-1,0,-1,-1]])
#print(f"M :\n{M}")
print("M :\n",M)
Mt = M.T
print("M x Mt :")
MMt = M.dot(Mt)
print(MMt)
det = np.linalg.det(MMt)
print(f"det = {int(det)}")
MtM = Mt.dot(M)
print("Mt x M :")
print(MtM)
det = np.linalg.det(MtM)
print(f"det = {int(det)}")
Cette video Youtube (en anglais) montre comment créer en python un modèle de machine learning pour prédire le cours futur de la bourse. ! (n'esssayez pas avec du vrai argent, vous risquez de le perdre)
Commentaires (0) :
Page :Ajouter un commentaire (pas besoin de s'enregistrer)
En cliquant sur le bouton "Envoyer" vous acceptez les conditions suivantes : Ne pas poster de message injurieux, obscène ou contraire à la loi, ni de liens vers de tels sites. Respecter la "netiquette", ne pas usurper le pseudo d'une autre personne, respecter les posts faits par les autres. L'auteur du site se réserve le droit de supprimer un ou plusieurs posts à tout moment. Merci !Ah oui : le bbcode et le html genre <br>, <a href=...>, <b>b etc. ne fonctionnent pas dans les commentaires. C'est voulu.