ΠΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° Python Gateway β ΠΊΠΎΠΌΡΡΠ½ΠΈΡΠΈ-ΠΏΡΠΎΠ΅ΠΊΡΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π°Π½Π½ΡΡ InterSystems IRIS. ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΊΠ΅ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Python (ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ΅Π΄Π° Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ Data Scientists), ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π³ΠΎΡΠΎΠ²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΡΡ , ΡΠΎΠ±ΠΎΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ AI/ML-ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ InterSystems IRIS. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΠΊΠ°ΠΆΡ ΠΊΠ°ΠΊ InterSystems IRIS ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΊΠ΅ΡΡΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Python, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π΄Π²ΡΡΡΠΎΡΠΎΠ½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΡ.
ΠΠ»Π°Π½
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ.
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°.
- API.
- ΠΠ½ΡΠ΅ΡΠΎΠΏΠ΅ΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ.
- Jupyter Notebook.
- ΠΡΠ²ΠΎΠ΄Ρ.
- Π‘ΡΡΠ»ΠΊΠΈ.
- MLToolkit.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Python β Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΡΠΈΠΈ ΡΡΠ°ΡΠ΅ΠΉ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Python Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ InterSystems IRIS, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠΎΠΊΡΡΠΎΠΌ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Python ΠΊΠ°ΠΊ ΡΠ·ΡΠΊΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠ°ΡΠΈΠ½Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ (ML) β ΠΊΠ»Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ°, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅ΡΡΠΎΠΉ ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΠΏΡΡΠΌΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ, Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΡ ΠΎΠ΄Π½ΡΡ Π·Π°Π΄Π°Ρ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌΠΈ. ΠΡΠΈΡΠΈΠ½ ΡΠΎΠΌΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, Π½ΠΎ Π²ΡΠ΅ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ, ΠΏΡΠΎΡΡΠΎΡΠ΅ ΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ². Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΉΡΠΎΡΠ΅ΡΠ΅Π²ΠΎΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ?
ΠΠΎΠ½Π΅ΡΠ½ΠΎ Π½Π΅Ρ, Π½ΠΎ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΈΡΠ°ΡΡ ΡΠΎΡΠ½ΠΈ ΡΡΡΡΡ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΌΠΎΠ΄Π΅Π»Ρ, Π° Π·Π°ΡΡΠ°ΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈ ΠΌΠ΅Π½ΡΡΠ΅.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ β Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Ρ Π½Π°Ρ Π½Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ GUI-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ AI/ML-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π½Π°Π±Π»ΡΠ΄Π°Π»ΠΈ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, BI (ΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΠΈ GUI-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ), Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ ΠΈ Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ AI/ML. ΠΡ ΡΠΆΠ΅ ΠΏΡΠΎΡΠ»ΠΈ ΡΡΠ°ΠΏ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.
ΠΡΡΠ³ΠΈΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΠ±ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Π΅Π³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠΎΡΠ°ΡΡ Π½Π°ΡΠ°Π»ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΡΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ², ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Π² ΡΠ΅Π»ΠΎΠΌ.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌ Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ InterSystems IRIS, Π²ΡΡ ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
Π‘ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠΌ Π½Π° ΠΎΠ±Π»Π°ΠΊΠΎ Π·Π°ΠΏΡΡΠΊ AI/ML-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π»Π΅Π³ΡΠ΅, ΡΠ΅ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ ΠΎΠ±Π»Π°ΡΠ½ΡΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π·Π°ΡΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
ΠΠΎ ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²? ΠΠ΄Π΅ΡΡ Π²ΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π΄Π°Π»Π΅Π΅. ΠΠΎΡΡΡΠΎΠΈΡΡ Ρ ΠΎΡΠΎΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π΅ΠΏΡΠΎΡΡΠΎ, Π½ΠΎ ΡΡΠΎ Π΄Π°Π»ΡΡΠ΅? ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ±ΡΠ»ΠΈ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±ΠΈΠ·Π½Π΅ΡΠΎΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. ΠΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΎΠΊ, ΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠ±ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ Π½Π° ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ β Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄Π°Π½Π½ΡΡ . Π§ΡΠΎ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ Π² Π»ΡΡΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΡΠ΅Π½Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π΅Π΅ ΡΠ°Π· Π² Π΄Π΅Π½Ρ? ΠΠΎΡΠ΅Π½Π½ΠΈΠΊΠΈ ΡΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΡΡΠ»ΠΈ Ρ Π΄Π΅Π½ΡΠ³Π°ΠΌΠΈ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠ΅Π½ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π° ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΅Ρ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° Π½ΠΎΠ²ΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎΠ±Ρ Π½Π°ΡΠΈ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΌΠΎΠ³Π»ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π°ΠΌΠΈ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΡ.
ML Toolkit β Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ΅Π»ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ: ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΡΠΌΠΎ Π² Π²Π°ΡΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ . Python Gateway ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ML Toolkit ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠ·ΡΠΊΠΎΠΌ Python (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΊΠ°ΠΊ R Gateway, ΡΠ²Π»ΡΡΡΡ ΡΠ°ΡΡΡΡ ML Toolkit ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠ·ΡΠΊΠΎΠΌ R).
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ, Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΎΠΏΠΈΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ Python, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ·ΠΆΠ΅.
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
- Python β ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ, Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ·ΡΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
, ML- ΠΈ AI-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΠ°ΠΊ ΠΈ ObjectScript, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ, Π½ΠΎ Π²ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ, Π° Π½Π΅ ΡΡΠ°ΡΠΈΡΠ½ΠΎ. Π’Π°ΠΊΠΆΠ΅ Π²ΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ ΠΌΠΈΠΌΠΎΠ»Π΅ΡΠ½ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΡΠ·ΡΠΊΠΎΠΌ. ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π½Π°ΡΠ°ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π½Π°ΡΠ°ΡΡ Ρ
Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ . - ΠΠ»Ρ Π½Π°ΡΠΈΡ
ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅
Python 3.6.7 64 bit . - IDE: Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
PyCharm , Π½ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΡΠΌΠ½ΠΎΠ³ΠΎ . ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Atelier, ΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Eclipse-ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π° Python. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ VS Code, ΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Python. - Notebook: Π²ΠΌΠ΅ΡΡΠΎ IDE Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΠΈ Π΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ Π² ΠΎΠ½Π»Π°ΠΉΠ½-Π½ΠΎΡΡΠ±ΡΠΊΠ°Ρ
. Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΠΈΠ· Π½ΠΈΡ
β
Jupyter .
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠΎΡ (Π½Π΅ΠΏΠΎΠ»Π½ΡΠΉ) ΡΠΏΠΈΡΠΎΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ:
Numpy β ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ ΡΠΎΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.Pandas β Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ .Matplotlib β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ².Seaborn β Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° matplotlib.Sklearn β ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.XGBoost β Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΠΈΠ½Π³Π° (Gradient Boosting).Gensim β NLP.Keras β Π½Π΅ΠΉΡΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΠΈ.Tensorflow β ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.PyTorch β ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° Python.Nyoka β PMML ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ AI/ML ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΈ Π°Π΄Π°ΠΏΡΠΈΡΡΠ΅ΠΌΡΠΌ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΏΡΠΎΡΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠΈ. ΠΠ°ΡΠ½ΠΈΡΠ΅ ΠΈΠ·ΡΡΠ°ΡΡ AI/ML-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΡΠ΅ΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡΠΈ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Python Gateway:
- ΠΠ‘
- Windows
- Linux
- Mac
- Docker
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ±ΡΠ°Π· ΠΈΠ· DockerHub
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ°Π·
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΏΠΎΡΠΎΠ±Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° β
ΠΠ‘
ΠΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ Python Gateway Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎ ΡΠ½Π°ΡΠ°Π»Π° (Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ) Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Python. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Python 3.6.7 64 bit . Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Python Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ
dill
:pip install dill
. - ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΊΠΎΠ΄ ObjectScript (Ρ.Π΅.
do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)
) Π² Π»ΡΠ±ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΠΌΠΈ. Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1)
. - ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅
callout DLL/SO/DYLIB Π² ΠΏΠ°ΠΏΠΊΡbin
Π²Π°ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠ° InterSystems IRIS. Π€Π°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ ΠΏΡΡΠΈ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠΌwrite ##class(isc.py.Callout).GetLib()
.
Windows
- Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
PYTHONHOME
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Python 3.6.7. - Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
PATH
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡPYTHONHOME
(ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ).
Linux (Debian/Ubuntu)
- ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
PATH
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ/usr/lib
ΠΈ/usr/lib/x86_64-linux-gnu
. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»/etc/environment
Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. - Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΎΠΊ
undefined symbol: _Py_TrueStruct
ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΡPythonLib
. Π’Π°ΠΊΠΆΠ΅ Π²Readme Π΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π» Troubleshooting.
Mac
- Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΈΡΠΎΠ½ 3.6.7 ΠΈΠ·
Python.org . ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡPATH
.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π²Π°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡ InterSystems.
Docker
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΄ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²:
- ΠΠΎΡΡΠ°ΡΠΈΠ²Π½ΠΎΡΡΡ
- ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ
- ΠΠ·ΠΎΠ»ΡΡΠΈΡ
- ΠΠ΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ
- ΠΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ
ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΡΠΎΠΉ
ΠΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Python Gateway Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ
2019.4
.
ΠΠΎΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latest
, ΡΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Python Gateway Ρ InterSystems IRIS Community Edition. ΠΠΎΡ ΠΈ Π²ΡΠ΅.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ°Π·
ΠΠ»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π΄ΠΎΠΊΠ΅Ρ-ΠΎΠ±ΡΠ°Π·Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π² ΠΊΠΎΡΠ½Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ: docker build --force-rm --tag intersystemscommunity/irispy:latest .
.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π· ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±ΡΠ°Π·Π° store/intersystems/iris-community:2019.4.0.383.0
, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ IMAGE
.
ΠΠ»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ· InterSystems IRIS Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅: `docker build —build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 —force-rm —tag intersystemscommunity/irispy:latest «.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΄ΠΎΠΊΠ΅Ρ-ΠΎΠ±ΡΠ°Π·:
docker run -d
-p 52773:52773
-v /<HOST-DIR-WITH-iris.key>/:/mount
--name irispy
intersystemscommunity/irispy:latest
--key /mount/iris.key
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°Π·, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° InterSystems IRIS Community Edition, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ»ΡΡ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
- Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ
isc.py.test.Process
ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΡΠ΄ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎΡ ΠΏΡΡΡ Π½Π° ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΡWorkingDir
ΡΠΊΠ°Π·Π°Π² ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ. - ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
docker exec -it irispy sh
. - ΠΠΎΡΡΡΠΏ ΠΊ ΠΠΎΡΡΠ°Π»Ρ Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π‘ΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎ Π»ΠΎΠ³ΠΈΠ½Ρ
SuperUser
/SYS
. - Π§ΡΠΎΠ±Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
docker stop irispy && docker rm --force irispy
.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Python Gateway, ΡΡΠΎΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ InterSystems IRIS:
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write var
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ HELLO
β Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Python-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ x
. ΠΡΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΡΠ°ΡΡΡ sc
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΈΠ»ΠΈ var
ΠΏΡΡΡΠΎ, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅
API
Python Gateway ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΠΈ Π²Ρ ΡΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡ, ΡΡΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎΡΠ° Π½Π°ΡΠΈΠ½Π°ΡΡ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ!
ΠΠ»Π°Π²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊ Python ΡΡΠΎ isc.py.Main
. ΠΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π³ΡΡΠΏΠΏΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (Π²ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ %Status
):
- ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
- ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ
- ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
ΠΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ Python-ΠΊΠΎΠ΄.
SimpleString
SimpleString
β ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄. ΠΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ 4 ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:
code
β ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ:$c(10)
.returnVariable
β ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°.serialization
β ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡreturnVariable
. 0 β string (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), 1 β repr.result
β ByRef ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅returnVariable
.
ΠΡΡΠ΅ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Python x
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Hello
ΠΈ Ρ
ΠΎΡΠΈΠΌ Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Python ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ x
Π² ObjectScript ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ var
.
ExecuteCode
ExecuteCode ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ SimpleString
.
Π‘ΡΡΠΎΠΊΠΈ Π² ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ InterSystems IRIS ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ 3 641 144 ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ, ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΠΊΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ.
ΠΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:
code
β ΡΡΡΠΎΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ Python ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.variable
β (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡcode
ΡΡΠΎΠΉ Python ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΡΠΈΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ 2 Π½Π° 3 ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² Python ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ y
.
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ
ΠΠ΅ΡΠ΅Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² Python ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
Python -> InterSystems IRIS
ΠΡΡΡ 4 ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Python ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² InterSystems IRIS, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π°ΠΌ Π½ΡΠΆΠ½Π°:
String
Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.Repr
Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.JSON
Π΄Π»Ρ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ InterSystems IRIS.Pickle
Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Ρ Python Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ².
GetVariable(variable, serialization, .stream, useString)
β ΠΏΠΎΠ»ΡΡΠΈΡΡserialization
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉvariable
Π²stream
. ΠΡΠ»ΠΈuseString
ΡΠ°Π²Π½ΠΎ 1 ΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΡΡΠΎΠΊΡ, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΡΡΠΎΠΊΠ° Π° Π½Π΅ ΠΏΠΎΡΠΎΠΊ.GetVariableJson(variable, .stream, useString)
β ΠΏΠΎΠ»ΡΡΠΈΡΡ JSON ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.GetVariablePickle(variable, .stream, useString, useDill)
-ΠΏΠΎΠ»ΡΡΠΈΡΡ Pickle (ΠΈΠ»ΠΈ Dill) ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ y
.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6
InterSystems IRIS -> Python
ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· InterSystems IRIS Π² Python.
ExecuteQuery(query, variable, type, namespace)
β ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ (pandasdataframe
ΠΈΠ»ΠΈlist
) ΠΈΠ· sql Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π² Python ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡvariable
. ΠΠ°ΠΊΠ΅Ρisc.py
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΠΎΠ±Π»Π°ΡΡΠΈnamespace
β ΡΠ°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π°ΠΏΡΠΎΡ.ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace)
β Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π³Π»ΠΎΠ±Π°Π»Π°global
ΠΎΡ ΡΠ°Π±ΡΠΊΡΠΈΠΏΡΠ°start
Π΄ΠΎend
Π² Python ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ°type
:list
, Π»ΠΈΠ±ΠΎ pandasdataframe
. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²mask
andlabels
Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈData Transfer docs .ExecuteClass(class, variable, type, start, end, properties, namespace)
β Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΠ°class
ΠΎΡ idstart
Π΄ΠΎend
Π² Python ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ°type
:list
, Π»ΠΈΠ±ΠΎ pandasdataframe
.properties
β ΡΠΏΠΈΡΠΎΠΊ (ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ β Π·Π°ΠΏΡΡΠ°Ρ) ΡΠ²ΠΎΠΉΡΡΠ² ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π² Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΌΠ°ΡΠΊΠΈ*
ΠΈ?
. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β*
(Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°). Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ%%CLASSNAME
ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ.ExecuteTable(table, variable, type, start, end, properties, namespace)
β Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡtable
ΠΎΡ idstart
Π΄ΠΎend
Π² Python.
ExecuteQuery
β ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ (Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ SQL-Π·Π°ΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π² Python). ΠΠ΄Π½Π°ΠΊΠΎ, ExecuteGlobal
ΠΈ Π΅Π³ΠΎ ΠΎΠ±ΡΡΡΠΊΠΈ ExecuteClass
ΠΈ ExecuteTable
ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠ΄ΠΎΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. ΠΠ½ΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅ (Π² 3-5 ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅ ODBC-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ Π² 20 ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅ ExecuteQuery
). ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²
ΠΡΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· Π»ΡΠ±ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΠ°ΠΊΠ΅Ρ isc.py
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
ExecuteQuery
ExecuteQuery(request, variable, type, namespace)
β ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ SQL-Π·Π°ΠΏΡΠΎΡΠ° Π½Π° Python. ΠΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ExecuteGlobal
ΠΈ Π΅Π³ΠΎ ΠΎΠ±ΡΡΡΠΊΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ:
query
β sql Π·Π°ΠΏΡΠΎΡ.variable
β Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Python ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅.type
βlist
ΠΈΠ»ΠΈ Pandasdataframe
.namespace
β ΠΎΠ±Π»Π°ΡΡΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π°ΠΏΡΠΎΡ.
ExecuteGlobal
ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace)
β ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π³Π»ΠΎΠ±Π°Π»Π° Π² Python.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ:
global
β ΠΈΠΌΡ Π³Π»ΠΎΠ±Π°Π»Π° Π±Π΅Π·^
variable
β Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Python ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅.type
βlist
ΠΈΠ»ΠΈ Pandasdataframe
.start
β ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π±ΡΠΊΡΠΈΠΏΡ Π³Π»ΠΎΠ±Π°Π»Π°. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ%Integer
.end
β ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π±ΡΠΊΡΠΈΠΏΡ Π³Π»ΠΎΠ±Π°Π»Π°. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ%Integer
.mask
β ΠΌΠ°ΡΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π³Π»ΠΎΠ±Π°Π»Π°. ΠΠ°ΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»Π΅ΠΉ Π² Π³Π»ΠΎΠ±Π°Π»Π΅ (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»Ρ Π² ΠΊΠΎΠ½ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠΏΡΡΠ΅Π½Ρ). ΠΠ°ΠΊ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΠΊΡ:+
ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π΅ΡΡΡ.-
ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.b
β ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΏ (0
βFalse
, Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ βTrue
).d
β ΠΠ°ΡΠ° (ΠΈΠ· $horolog, Π½Π° Windows ΠΎΡ 1970, Π½Π° Linux ΠΎΡ 1900).t
β ΠΡΠ΅ΠΌΡ ($horolog, ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΠ½ΠΎΡΠΈ).m
β ΠΠ΅ΡΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΡΡΡΠΎΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠ° YEAR-MONTH-DAY HOUR:MINUTE:SECOND).
labels
β %List Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. ΠΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ β Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π±ΡΠΊΡΠΈΠΏΡΠ°.namespace
β ΠΎΠ±Π»Π°ΡΡΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π°ΠΏΡΠΎΡ.
ExecuteClass
ΠΠ±Π΅ΡΡΠΊΠ° Π½Π°Π΄ ExecuteGlobal
. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠ·ΠΎΠ² ExecuteGlobal
ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ.
ExecuteClass(class, variable, type, start, end, properties, namespace)
β ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ
ΠΊΠ»Π°ΡΡΠ° Π² Python.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ:
class
β ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°variable
β Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Python ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅.type
βlist
ΠΈΠ»ΠΈ Pandasdataframe
.start
β ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ Id.end
β ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Idproperties
β ΡΠΏΠΈΡΠΎΠΊ (ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ β Π·Π°ΠΏΡΡΠ°Ρ) ΡΠ²ΠΎΠΉΡΡΠ² ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π² Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΌΠ°ΡΠΊΠΈ*
ΠΈ?
. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β*
(Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°). Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ%%CLASSNAME
ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ.namespace
β ΠΎΠ±Π»Π°ΡΡΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π°ΠΏΡΠΎΡ.
ΠΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ ΠΊΡΠΎΠΌΠ΅ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠΈΠΏΠΎΠ² %Date
, %Time
, %Boolean
ΠΈ %TimeStamp
β ΠΎΠ½ΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ Python.
ExecuteTable
ΠΠ±Π΅ΡΡΠΊΠ° Π½Π°Π΄ ExecuteClass
. Π’ΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅Ρ ΠΈΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ExecuteClass
. Π‘ΠΈΠ³Π½Π°ΡΡΡΠ°:
ExecuteTable(table, variable, type, start, end, properties, namespace)
β ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ
ΡΠ°Π±Π»ΠΈΡΡ Π² Python.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ:
table
β ΠΈΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ.
ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ Π²ExecuteClass
.
ΠΠ°ΠΌΠ΅ΡΠΊΠΈ
ExecuteGlobal
,ExecuteClass
ΠΈExecuteTable
ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π±ΡΡΡΡΠΎ.ExecuteGlobal
Π² 20 ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅ ΡΠ΅ΠΌExecuteQuery
Π½Π° Π±ΠΎΠ»ΡΡΠΈΡ Π½Π°Π±ΠΎΡΠ°Ρ Π΄Π°Π½Π½ΡΡ (Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π±ΠΎΠ»Π΅Π΅ >0.01 ΡΠ΅ΠΊΡΠ½Π΄Ρ).ExecuteGlobal
,ExecuteClass
ΠΈExecuteTable
ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π³Π»ΠΎΠ±Π°Π»Π°Ρ Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ:^global(key) = $lb(prop1, prop2, ..., propN)
Π³Π΄Π΅key
β ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.- ΠΠ»Ρ
ExecuteGlobal
,ExecuteClass
ΠΈExecuteTable
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ%Date
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρmktime
ΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΠ‘ (windows : 1970-01-01,linux 1900-01-01,mac ). ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅%TimeStamp
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π²Π½Π΅ ΡΡΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ pandas dataframe Ρ.ΠΊ. ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠ°. - ΠΠ»Ρ
ExecuteGlobal
,ExecuteClass
ΠΈExecuteTable
Π²ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΡΠΎΠΌΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ (Π³Π»ΠΎΠ±Π°Π»Π°, ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΡ) ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½Ρ.
ΠΡΠΈΠΌΠ΅ΡΡ
Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ
set global = "isc.py.test.PersonD"
set class = "isc.py.test.Person"
set table = "isc_py_test.Person"
set query = "SELECT * FROM isc_py_test.Person"
// ΠΠ±ΡΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ
set variable = "df"
set type = "dataframe"
set start = 1
set end = $g(^isc.py.test.PersonD, start)
// Π‘ΠΏΠΎΡΠΎΠ± 0: ExecuteGlobal Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²
set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 0, type)
// Π‘ΠΏΠΎΡΠΎΠ± 1: ExecuteGlobal Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
// ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π³Π»ΠΎΠ±Π°Π»Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ Π·Π°Π΄Π°ΡΡΡΡ Π²ΡΡΡΠ½ΡΡ
// globalKey - Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π±ΡΡΠΊΡΠΈΠΏΡΠ°
set labels = $lb("globalKey", "Name", "DOB", "TS", "RandomTime", "AgeYears", "AgeDecimal", "AgeDouble", "Bool")
// mask ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π° 1 ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΠΌ labels ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ "globalKey" - Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π±ΡΠΊΠΈΠΏΡΠ°
// ΠΡΠΎΠΏΡΡΠΊΠ°Π΅ΠΌ %%CLASSNAME
set mask = "-+dmt+++b"
set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 1, type, start, end, mask, labels)
// Π‘ΠΏΠΎΡΠΎΠ± 2: ExecuteClass
set sc = ##class(isc.py.Main).ExecuteClass(class, variable _ 2, type, start, end)
// Π‘ΠΏΠΎΡΠΎΠ± 3: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteTable(table, variable _ 3, type, start, end)
// Π‘ΠΏΠΎΡΠΎΠ± 4: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteQuery(query, variable _ 4, type)
ΠΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ do ##class(isc.py.test.Person).Test()
ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
.
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ
GetVariableInfo(variable, serialization, .defined, .type, .length)
β ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ: ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π»ΠΈ ΠΎΠ½Π°, ΠΊΠ»Π°ΡΡ ΠΈ Π΄Π»ΠΈΠ½Π½Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.GetVariableDefined(variable, .defined)
β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ.GetVariableType(variable, .type)
β ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ»Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.GetStatus()
β ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Python.GetModuleInfo(module, .imported, .alias)
β ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΡΡΠ°ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠ°.GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments)
β ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ½ΡΠ΅ΡΠΎΠΏΠ΅ΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ
ΠΡ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ Python Gateway ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΡΠ½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ. ΠΡΠ½ΠΎΠ²Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Python Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ β isc.py.ens.Operation
. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ:
- ΠΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄ Π½Π° Python
- Π‘ΠΎΡ ΡΠ°Π½ΡΡΡ/ΠΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Python ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
- ΠΠ°Π³ΡΡΠΆΠ°ΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Python
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Pyhton ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΡΠΎ ΠΎΠ±Π΅ΡΡΠΊΠ° Π½Π°Π΄ isc.py.Main
. ΠΠΏΠ΅ΡΠ°ΡΠΈΡ isc.py.ens.Operation
Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Python ΠΈΠ· ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΉ InterSystems IRIS. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²:
isc.py.msg.ExecutionRequest
Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Python ΠΊΠΎΠ΄Π°. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρisc.py.msg.ExecutionResponse
Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .isc.py.msg.StreamExecutionRequest
Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Python ΠΊΠΎΠ΄Π°. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρisc.py.msg.StreamExecutionResponse
ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠ½Π°Π»ΠΎΠ³isc.py.msg.ExecutionRequest
, Π½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΡΠΎΠΊΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΡΠΎΠΊ.isc.py.msg.QueryRequest
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ SQL Π·Π°ΠΏΡΠΎΡΠ°. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡEns.Response
.isc.py.msg.GlobalRequest
/isc.py.msg.ClassRequest
/isc.py.msg.TableRequest
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π³Π»ΠΎΠ±Π°Π»Π°/ΠΊΠ»Π°ΡΡΠ°/ΡΠ°Π±Π»ΠΈΡΡ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡEns.Response
.isc.py.msg.SaveRequest
Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Python ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡEns.StringResponse
Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.-
isc.py.msg.RestoreRequest
Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Python ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ,
isc.py.ens.Operation
ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ:Initializer
β Π²ΡΠ±ΠΎΡ ΠΊΠ»Π°ΡΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡisc.py.init.Abstract
. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ Ρ.ΠΏ. ΠΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°.PythonLib
β (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Linux) Π΅ΡΠ»ΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π²Π½ΡΠΌlibpython3.6m.so
ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π² ΠΏΠΎΠ»Π½ΠΎΠΌΡ ΠΏΡΡΠΈ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Python.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
ΠΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π²Π° ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²:
isc.py.ens.ProcessUtils
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΈΠ· Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠ΅ΠΉ Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .isc.py.util.BPEmulator
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΡ Ρ Python. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡ (ΡΠ°ΡΡΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ Python) Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅.
ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΡΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΡ isc.py.ens.ProcessUtils
, ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ GetAnnotation(name)
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΠΎ Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΡ. ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½Ρ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ InterSystems IRIS ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ Π² Python. ΠΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
:
${class:method:arg1:...:argN}
β Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π°#{expr}
β ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° ΡΠ·ΡΠΊΠ΅ ObjectScript.
ΠΡΠΈΠΌΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠ΅ isc.py.test.Process
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Correlation Matrix: Graph
: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png')
. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
#{process.WorkDirectory}
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ WorkDirectory ΠΎΠ±ΡΠ΅ΠΊΡΠ°process
, ΡΠ²Π»ΡΡΡΠ΅Π³ΠΎΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ°isc.py.test.Process
Ρ.Π΅. ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠ°.${%PopulateUtils:Integer:1:100}
Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄Integer
ΠΊΠ»Π°ΡΡΠ°%PopulateUtils
, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ1
ΠΈ100
, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅1...100
.
Π’Π΅ΡΡΠΎΠ²ΡΠΉ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡ
Π’Π΅ΡΡΠΎΠ²Π°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ ΠΈ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΠ»ΡΠ·Π° Python Gateway. ΠΠ»Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
- Π ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΠΠ‘ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
pip install pandas matplotlib seaborn
. - Π ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ InterSystems IRIS Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
do ##class(isc.py.test.CannibalizationData).Import()
Π΄Π»Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ . - ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ
isc.py.test.Production
. - ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ ΡΠΈΠΏΠ°
Ens.Request
Π²isc.py.test.Process
.
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²ΠΌΠ΅ΡΡΠ΅. ΠΡΠΊΡΠΎΠΉΡΠ΅ isc.py.test.Process
Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ BPL:
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
Π‘Π°ΠΌΡΠΉ Π²Π°ΠΆΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² β ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Python ΠΊΠΎΠ΄Π°:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ isc.py.msg.ExecutionRequest
, Π²ΠΎΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
Code
β Python ΠΊΠΎΠ΄.SeparateLines
β ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π»ΠΈ ΠΊΠΎΠ΄ Π½Π° ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.$c(10)
(n
) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΠ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΡΡΠ°Π·Ρ, ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈdef
ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ0
.Variables
β ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΡΡΠΌΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΠΎΡΠ²Π΅Ρ.Serialization
β ΠΠ°ΠΊ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π²Π΅ΡΠ½ΡΡΡ. ΠΠ°ΡΠΈΠ°Π½ΡΡ:Str
,Repr
,JSON
,Pickle
ΠΈDill
, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡStr
.
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Code
, ΡΠ°ΠΊ ΡΡΠΎ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ process.GetAnnotation("Import pandas")
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
. Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΠΊΠΎΠ΄ import pandas as pd
Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π² Python. GetAnnotation
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Π° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΡ
Python ΡΠΊΡΠΈΠΏΡΠΎΠ², Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π΅Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Code
Π»ΡΠ±ΡΠΌ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π»Ρ Π²Π°Ρ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ isc.py.msg.ExecutionRequest
β Correlation Matrix: Tabular
:
ΠΠ½ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΠ°ΡΡΠΈΡΡ ΠΠΎΡΡΠ΅Π»ΡΡΠΈΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Python ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ corrmat
ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² InterSystems IRIS Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON, ΠΏΡΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ²ΠΎΠΉΡΡΠ² Π·Π°ΠΏΡΠΎΡΠ°:
Variables
:"corrmat"
Serialization
:"JSON"
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π² Visual Trace:
Π Π΅ΡΠ»ΠΈ Π½Π°ΠΌ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π² ΠΠ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊ: callresponse.Variables.GetAt("corrmat")
.
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ
ΠΠ°Π»Π΅Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· InterSystems IRIS Π² Python, Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ
ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ isc.py.msg.DataRequest
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
Variable
β ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Python Π² ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅.Type
β ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ:dataframe
(pandas dataframe) ΠΈΠ»ΠΈlist
.Namespace
β ΠΎΠ±Π»Π°ΡΡΡ ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°ΠΊΠ΅Ρisc.py
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΉ.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ 4 ΠΊΠ»Π°ΡΡΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ²:
isc.py.msg.QueryRequest
β ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎQuery
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ SQL Π·Π°ΠΏΡΠΎΡΠ°.isc.py.msg.ClassRequest
β ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎClass
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°.isc.py.msg.TableRequest
β ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎTable
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ.isc.py.msg.GlobalRequest
β ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎGlobal
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π³Π»ΠΎΠ±Π°Π»Π°.
Π ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ RAW
, Π³Π΄Π΅ isc.py.msg.QueryRequest
ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅/Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Python ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Python ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π² InterSystems IRIS, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΎΡΠΏΡΠ°Π²ΠΈΠΌ isc.py.msg.SaveRequest
Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ:
Mask
β Π‘ΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΠ΅ ΠΌΠ°ΡΠΊΠ΅. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ*
ΠΈ?
. ΠΡΠΈΠΌΠ΅Ρ:"Data*, Figure?"
. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ*
.MaxLength
β ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΡΠ»ΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Π½Π΅Π΅, ΡΠΎ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Π°. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ 0, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π»ΡΠ±ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ$$$MaxStringLength
.Name
β ΠΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ).Description
β ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ).
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Ens.StringResponse
Ρ Id
ΡΠΎΡ
ΡΠ°Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. Π ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Save Context
.
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ isc.py.msg.RestoreRequest
Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΠ· InterSystems IRIS Π² Python:
ContextId
β ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.Clear
β ΠΎΡΠΈΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ.
Jupyter Notebook
ΠΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠΎΠ΄ Python ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠ΅ΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ². Π’Π΅ΠΏΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΡ PythonGateway Π² Jupyter Notebook. ΠΠΎΡ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ:
- Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΡ
- Π£Π΄Π°Π»ΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΡ
- Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ
- ΠΠ·ΠΌΠ΅Π½ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ
- Π£Π΄Π°Π»ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ
ΠΠΎΡ
ΠΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
Π Π΅Π΄Π°ΠΊΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
- ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ InterSystems IRIS 2019.2+.
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ PythonGateway v0.8+ (ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ
isc.py.util.Jupyter
,isc.py.util.JupyterCheckpoints
ΠΈisc.py.ens.ProcessUtils
). - ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΊΠΎΠ΄ ObjectScript ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅
do ##class(isc.py.util.Jupyter).Install()
ΠΈ ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°ΠΌ.
ΠΡΠ²ΠΎΠ΄Ρ
MLToolkit β Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ΅Π»ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΡΠΌΠΎ Π² Π²Π°ΡΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ . Python Gateway ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ MLToolkit ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠ·ΡΠΊΠΎΠΌ Python ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΎΡΠΊΠ΅ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Python (ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ΅Π΄Π° Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ Data Scientists), ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π³ΠΎΡΠΎΠ²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΡΡ , ΡΠΎΠ±ΠΎΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ AI/ML-ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ InterSystems IRIS.
Π‘ΡΡΠ»ΠΊΠΈ
ΠΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΡΡΠ°ΡΡΡ Python Gateway Python Gateway Samples Convergent-Analytics Python 3.6.7 64 bit ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ ΠΊΡΡΡΡ ΠΏΠΎ Python
MLToolkit
ΠΡΡΠΏΠΏΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ MLToolkit β ΡΡΠΎ ΡΠ°ΡΡΠ½ΡΠΉ GitHub-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ GitHub-ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ InterSystems. ΠΠ½Π° Π°Π΄ΡΠ΅ΡΠΎΠ²Π°Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ, ΠΈΠ·ΡΡΠ°ΡΡ ΠΈΠ»ΠΈ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ MLToolkit, Π²ΠΊΠ»ΡΡΠ°Ρ Python Gateway. Π Π³ΡΡΠΏΠΏΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΡΠ΄ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ
ΠΊΠ΅ΠΉΡΠΎΠ² (Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΡΠ΅ΡΡΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ) Π² ΡΡΠ΅ΡΠ°Ρ
ΠΌΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³Π°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π°, ΠΌΠ΅Π΄ΠΈΡΠΈΠ½Ρ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ
Π΄ΡΡΠ³ΠΈΡ
ΠΎΡΡΠ°ΡΠ»ΡΡ
. Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ ΠΊ Π³ΡΡΠΏΠΏΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ML Toolkit, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ΅ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ Π°Π΄ΡΠ΅ΡΡ:
- ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ GitHub
- ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ (Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΈΠ»ΠΈ ΡΡΠΈΡΠ΅ΡΡ)
- ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΡ (Π²Π°ΡΠ° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡ Π² Π²Π°ΡΠ΅ΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΈΠ»ΠΈ "Π‘ΡΡΠ΄Π΅Π½Ρ", ΠΈΠ»ΠΈ "ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ").
- Π‘ΡΡΠ°Π½Π°
Π’Π΅ΠΌ, ΠΊΡΠΎ ΠΏΡΠΎΡΠΈΡΠ°Π» ΡΡΠ°ΡΡΡ ΠΈ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π»ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ InterSystems IRIS ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ° ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΠΌΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ. ΠΡ Ρ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΏΠ»Π°Π½ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ; ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π½Π°ΡΠ΅ΠΉ ΡΠΊΡΠΏΠ΅ΡΡΠ½ΠΎΠΉ Π³ΡΡΠΏΠΏΡ AI/ML β
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com