[Personal memo] julia --Utiliser la bibliothèque Python avec Julia en utilisant PyCall

Utilisez la bibliothèque Python

Je touche toujours le Mac Book Pro Retina 13 pouces avec un visage doy le matin. Je pensais que je ferais aussi Julia aujourd'hui. Plus tôt, j'ai écrit dans l'article de Qiita que Python pouvait également être utilisé.

[Note personnelle] Essayez le cadre d'application Web de julia "Morsel"

J'ai pensé essayer, alors je vais essayer. Vous pouvez exécuter des bibliothèques Python à l'aide de PyCall.jl.

https://github.com/stevengj/PyCall.jl

Essayons-le.

Installez PyCall.jl

Exécutez la commande suivante à partir du REPL de Julia

Pkg.add("PyCall")

C'est acceptable

Essayez la bibliothèque Python

Dans l'exemple écrit en README.md de PyCall.jl J'utilise la bibliothèque mathématique.

https://github.com/stevengj/PyCall.jl/blob/ef23e044d4870d3440a76c79d09c85a36c510d06/README.md

using PyCall
@pyimport math
math.sin(math.pi / 4) - sin(pi / 4)  # returns 0.0

Puis-je utiliser une bibliothèque d'expressions régulières?

Essayez-le pour le moment

Essaie.

using PyCall

@pyimport re

match_pattern = re.compile("Welcome to (.+\.)")

groups_of_match = pycall(match_pattern["search"], PyObject, "Welcome to underground.")["group"]

result = convert(String, pycall(groups_of_match, PyObject, 0))
match_of_group = convert(String, pycall(groups_of_match, PyObject, 1))

println("All match is [$result]")
println("Match of first regex group is [$match_of_group]")

Le résultat de l'exécution est le suivant.

スクリーンショット 2014-05-27 9.37.12.png

Ce code est équivalent à ce qui suit en Python:

import re

match_pattern = re.compile("Welcome to (.+\.)")

groups_of_match = match_pattern.search("Welcome to underground.")

result = groups_of_match.group(0)
match_of_group = groups_of_match.group(1)

print("All match is [{result}]".format(result=result))
print("Match of first regex group is [{match_of_group}]".format(
  match_of_group=match_of_group)
)

Résultat d'exécution

スクリーンショット 2014-05-27 9.45.26.png

Fonctions utilisées, etc.

fonction pycall

Selon Référence

pycall(function::PyObject, returntype::Type, args...)

Puisqu'il est écrit dans le format, j'ai fait ce qui suit pour l'essai de la bibliothèque d'expressions régulières.

pycall(match_pattern["search"], PyObject, "Welcome to underground.")["group"]

PyObject renvoie des types numériques, booléens et fonctionnels. Cela ressemble à un objet pratique. (La description dit qu'il utilise PyObject de l'API C)

En appelant pycall comme ci-dessus, Le groupe qui correspond à l'expression régulière et toute la chaîne correspondante peuvent être utilisés.

match_pattern["search"]Est Obtenez les attributs de l'objet comme décrit dans Description PyObject. Dans ce cas, vous appelez la méthode ** search ** de l'objet de correspondance d'expression régulière.

convert

Convertir la description est écrit dans la description de PyObject.

convert(T, o::PyObject)

En bref, jetez. Je voulais en faire un type de chaîne de Julia, alors J'ai converti le résultat de l'expression régulière (PyObject) dans le type String de julia.

convert(String, pycall(groups_of_match, PyObject, 0))

Je pourrais facilement convertir le type PyObject en type String.

Touchez-le légèrement

Avoir PyCall semble être l'une des plaintes de Julia. Le nombre de bibliothèques propres à Julia n'est pas très grand pour les bibliothèques intégrées, Je pensais que c'était bien de pouvoir utiliser les ressources de la bibliothèque Python ^ - ^

Recommended Posts

[Personal memo] julia --Utiliser la bibliothèque Python avec Julia en utilisant PyCall
J'ai essayé d'utiliser la bibliothèque Python de Ruby avec PyCall
La douleur de gRPC en utilisant Python. Novembre 2019. (Mémo personnel)
[S3] CRUD avec S3 utilisant Python [Python]
Mémo graphique Twitter avec Python
Utilisation de Quaternion avec Python ~ numpy-quaternion ~
[Python] Utilisation d'OpenCV avec Python (basique)
mémo python utilisant perl --join
Utiliser OpenCV avec Python @Mac
Envoyer en utilisant Python avec Gmail
Utilisation de jupyter notobook avec VS Code (mac OS) (mémo personnel)
Essayez Juniper JUNOS PyEz (bibliothèque python) Memo 3 ~ Modifier les paramètres avec PyEz ~
Essayez Juniper JUNOS PyEz (bibliothèque python) Note 2 ~ Obtenez des informations avec PyEz ~
Compléter python avec emacs en utilisant company-jedi
Moyenne harmonique par Python (en utilisant SciPy)
[Python] Utilisation d'OpenCV avec Python (filtrage d'image)
Utilisation de Rstan de Python avec PypeR
[Python] Utilisation d'OpenCV avec Python (transformation d'image)
[Mémo personnel] Mémo de commande d'environnement virtuel Python
[Python] Utilisation d'OpenCV avec Python (détection des bords)
mémo python - Spécifiez les options avec getopt
Entrée / sortie avec Python (mémo d'apprentissage Python ⑤)
[Note personnelle] Type de séquence / type de mappage Python
Notes sur l'utilisation de rstrip avec python.
[HyperledgerIroha] Requête avec la bibliothèque Python
Mémo d'apprentissage "Scraping & Machine Learning avec Python"
Lors de l'utilisation de MeCab avec python dans virtualenv
Précautions lors de l'utilisation de six avec Python 2.5
[Memo] Tweet sur Twitter avec Python
[Python] Mémo d'erreur et de solution lors de l'utilisation de venv avec pyenv + anaconda
[AWS] Utilisation de fichiers ini avec Lambda [Python]
Convertir un mémo à la fois avec Python 2to3
Grattage WEB avec Python (pour mémo personnel)
Essayez une formule utilisant Σ avec python
Mémo Python
Mémo pour demander des KPI avec python
Derrière le flyer: utiliser Docker avec Python
mémo python
Utilisation de Python et MeCab avec Azure Databricks
"Commerce du système à partir de Python3" lecture du mémo
Communication de socket en utilisant le serveur de socket avec python maintenant
Un mémo python utilisant perl --format est pratique.
Installez la bibliothèque python sur Lambda à l'aide de [/ tmp]
Mémo Python
Un mémo contenant Python2.7 et Python3 dans CentOS
Essayez d'utiliser Python avec Google Cloud Functions
Utiliser le chiffrement de la bibliothèque de chiffrement avec l'image Python de Docker
Vérifiez les cours des actions avec Slackbot en utilisant Python
Travailler avec OpenStack à l'aide du SDK Python
[Note personnelle] Scraping de pages Web en python3
Conseils pour utiliser python + caffe avec TSUBAME
mémo python
Mémo Python
Essayez le scraping HTML avec la bibliothèque Python
Bibliothèque standard Python: seconde moitié (mémo d'apprentissage Python ⑨)
Publiez votre propre bibliothèque Python sur Homebrew
Génération automatique Powerpo avec python-pptx (mémo personnel)
J'utilise tox et Python 3.3 avec Travis-CI
Mémo Python
Bibliothèque standard Python: première moitié (mémo d'apprentissage Python ⑧)