Working with NumPy and Pandas
May 30, 2026 | 5 min read
NumPy Best Practices
Pyvorin compiles the Python orchestration code around NumPy calls. The NumPy C operations themselves already run at native speed.
import numpy as np
def process(arr):
result = []
for i in range(len(arr)):
val = arr[i] * 2 + 1
result.append(val)
return np.array(result)
The Python loop above will be compiled natively; the np.array call falls back to CPython gracefully.
Pandas DataFrames
DataFrame operations inside loops can benefit from compilation:
def transform_rows(df):
results = []
for idx, row in df.iterrows():
results.append(row['price'] * row['quantity'])
return results
SciPy
SciPy functions are C-backed and do not need compilation. Focus Pyvorin on the Python glue code that calls SciPy.
Interop Limitations
- Direct mutation of NumPy C arrays from compiled code is unsupported.
- Pandas ExtensionArrays may fall back to CPython.
- Numba-jitted functions cannot be further compiled by Pyvorin.