IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaçage autre langage Python Discussion :

Ipython Notebook. Utiliser valeur de variable définie en Python dans code Javascript


Sujet :

Interfaçage autre langage Python

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 176
    Points : 119
    Points
    119
    Par défaut Ipython Notebook. Utiliser valeur de variable définie en Python dans code Javascript
    Bonjour.

    Je sèche sur le problème suivant.

    Je suis dans Ipython Notebook.

    J'obtiens une valeur sotckée dans une variable. Je souhaite alors utiliser cette valeur dans du code Javascript et toujours à l'intérieur de IPYNB.

    Exemple d'illustration:

    Ma variable définie en Python:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # Get a vector of 4 normal random numbers using numpy - the variable 'rnd'
    import numpy as np
    mu, sig = 0.05, 0.2
    rnd = np.random.normal(loc=mu, scale=sig, size=4)
    Maintenant je veux utiliser rnd (la valeur qu'il contient tout du moins dans du javascript depuis IPYNB, illustration pour le moins minimaliste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    %%javascript
    element.append(rnd);
    Comment dois-je procéder svp?

    Merci pour vos suggestions!

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 176
    Points : 119
    Points
    119
    Par défaut
    Si quelqu'un d'autre est intéressé, j'ai fini par trouver une solution à mon problème.

    J'ai écrit une entrée blog sur le sujet. Je reproduis ci-dessous les 2 snippets:

    Source: http://quantcorner.wordpress.com/201...thon-notebook/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # Required library
    import pandas as pd
    from IPython.html import widgets
     
    # Create an example pandas DataFrame object
    df = pd.DataFrame([{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}], index=['first', 'second'])
     
    # Convert df to json
    jdf = df.to_json(orient='records')
     
    # Create a Ipython widget
    widgets.HTMLWidget(
        value='''<div  class='dataframe'> ''' + jdf + '</div>'  # One can add 'hidden' argument to the div tag
                                                                # while original dataframe becomes cumbersome
    )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    %%javascript // This notebook cell deals with Javascript
     
    // Get the data jsoned dataframe (actually it is a mere string ...) 
    var jadf = $('div.dataframe').text();
     
    // Convert to json usable in Javascript
    var obj = jQuery.parseJSON(jadf);
     
    // Check Javascript interprets obj as a json object 
    $.each(obj, function(index, element) {
        console.log(element.second); 
    });
    Voilà!
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Utilisation d'une variable définie dans une formule classique
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 14/09/2011, 16h47
  2. [XSLT] variable définie plusieurs fois dans la même portée
    Par dhallennem dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/02/2008, 15h48
  3. Réponses: 4
    Dernier message: 29/01/2008, 11h12
  4. Réponses: 5
    Dernier message: 22/01/2008, 09h54
  5. Réponses: 1
    Dernier message: 15/02/2007, 00h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo