2017-08-06 6 views
-1

PyCall document dit: Important: La plus grande différence de Python est que les attributs d'objet/membres sont accessibles avec o [: attribut] plutôt que o. attribut, de sorte que o.method (...) dans Python est remplacé par o: method dans Julia. En outre, vous utilisez get (o, key) plutôt que o [key]. (Cependant, vous pouvez accéder à des index entiers via o [i] comme en Python, mais avec des index Julian basés sur 1 plutôt qu'avec des index Python basés sur 0)Comment puis-je utiliser python fonction intégrée comme isinstance() dans julia utilisant PyCall

Mais je n'ai aucune idée de quel module ou objet importer

+1

Faire la question plus claire. Façons de faire ceci: a) Ajoutez une partie de votre code. b) Explique quel est le but de ta fonction ou ce qu'elle essaie de calculer. c) Rendre le code que vous partagez exécutable et peut-être ajouter quelques résultats ou erreurs que vous obtenez. d) Ajouter une phrase qui est une question (? à la fin) et essayer de décrire ce que serait une réponse. Toute combinaison de (a), (b), (c) et (d) aiderait. –

+0

Merci quand même, la première réponse ci-dessous a résolu mon problème. –

Répondre

2

Voici un exemple simple pour vous aider à démarrer

using PyCall 

@pyimport numpy as np   # 'np' becomes a julia module 

a = np.array([[1, 2], [3, 4]]) # access objects directly under a module 
           # (in this case the 'array' function) 
           # using a dot operator directly on the module 
#> 2×2 Array{Int64,2}: 
#> 1 2 
#> 3 4 

a = PyObject(a)     # dear Julia, we appreciate the automatic 
           # convertion back to a julia native type, 
           # but let's get 'a' back in PyObject form 
           # here so we can use one of its methods: 
#> PyObject array([[1, 2], 
#>     [3, 4]]) 

b = a[:mean](axis=1)   # 'a' here is a python Object (not a python 
           # module), so the way to access a method 
           # or object that belongs to it is via the 
           # pythonobject[:method] syntax. 
           # Here we're calling the 'mean' function, 
           # with the appropriate keyword argument 
#> 2-element Array{Float64,1}: 
#> 1.5 
#> 3.5 

pybuiltin(:type)(b)    # Use 'pybuiltin' to use built-in python 
           # commands (i.e. commands that are not 
           # under a module) 
#> PyObject <type 'numpy.ndarray'> 

pybuiltin(:isinstance)(b, np.ndarray) 
#> true 
+0

Merci, votre réponse a parfaitement résolu mon problème –