Using Python from Analytica
Revision as of 19:55, 19 August 2025 by Calvin.lu (talk | contribs) (→Importing Python modules and objects)
New in Analytica 7.0
Requires the Analytica Developer edition.
Introduction
- Short overview
- Motivation (i.e., rich ecosystem, many libraries)
- Use cases
- Advantages of using python from within Analytica vs. plain python.
- Downsides: When it is better to stick with Analytica syntax (dependencies, array abstraction, MC, optimization).
Setting up a Python environment
- Very brief basics.
conda create -n MyEnv python=3.11- Configuring Python Environment or Model Environment sysvars in Analytica.
- Link to Setting up a Python environment for detailed info.
Importing Python modules and objects
- The Python Startup Code sysvar
- Use of "From module Import object"
There are two types of imports in Python: module imports (e.g., import numpy) and selective/wildcard imports (e.g., from numpy import arrays, zeros or from numpy import *). When imports are the last statement in a Python expression, they will be outputted. Module imports will output string representation of the module when evaluated. Selective/wildcard imports will output a list of the alias names (or the original names if the aliases does not exist) of each object.
Evaluation of import numpy as np, os
Evaluation of from numpy import array as arr, zeros
The Python namespace
- The py:: namespace prefix
Calling a Python function
- py::F(...) calling syntax
- What print(...) does
Using Python classes
- Using an existing python class
- The -> operator to access fields, methods
Using Python code in Definitions
- The Python Expression view for definitions
- Writing an Analytica UDF with python code in body
Defining your own Python classes and Python functions
- Using "def" or "class" in python code.
- The Callable
- Developing your code outside of Analytica and importing as a module.
Dependencies
- The convenience of Analytica's dependencies.
- Drawing arrows to indicate dependence where Python doesn't track it.
- When dependencies are not tracked
Functions for evaluating Python code
Non-scalar data structures
- Distinction between Python data structures and Analytica data structures. How Python objects display in «...»
- Why to sometimes keep as python data structure w/o exploding
Converting from Python data to Analytica
- Automatic conversions (including list of types)
- PyExplode
- Basic usage. Nested usage.
- Include/exclude types
- Collections: np.array, dict, set/map, pandas data frame (documented on a separate library page), etc.
- Images & Figures, PIL.Image, matplotlib.figure.Figure
Converting from Analytica to Python data structures
Using Analytica locals from Python code
- When Analytica locals are visible to python code.
- Assignment to an Analytica local from python code.
Accessing Analytica objects from Python code
- Analytica module
- Get an Analytica object
- Evaluate a variable
- Analytica.eval(...) -- evaluate an analytica expression
- Call an Analytica function (?) -- Don't have something very direct here yet
Using Python in ACP or ADE
See also
Comments


Enable comment auto-refresher