Skip to main content

Convenience imports and scientific functions.

Project description

fxy

Mnemonic imports and command fx with parameters to import libraries often used in research.

  • n (NUMERIC MATH)

  • s (SYMBOLIC MATH)

  • a (ACTUARIAL: STATISTICS & SCIENCE)

  • l (MACHINE LEARNING)

  • p (PLOTING).

https://wiki.mindey.com/shared/screens/video-cover.png

Introduction

The people who come from tools like Maple, Matlab, Mathematica, and R, may find that Python requires a lot of mathematical imports just to start doing basic stuff. So, I tried to simplify it – simply pip install fxy, and you’ve got a command fx, that starts Python with mpmath stuff pre-imported: so, you can start using Python like a calculator right away. If you need more, like symbolics, or statistics, or machine learning, – these things are import-able with extra parameter, e.g., fx -s for isympy (shorter than typing isympy), or just by running import import shortcuts described below:

>>> from fxy.n import * # Numeric: from mpmath import *
>>> from fxy.s import * # Symbolic: import sympy; exec(sympy.interactive.session.preexec_source)
>>> from fxy.a import * # Actuarial: numpy, np, pandas, pd, xarray, xr, scipy, sp, scipy.stats, st, statsmodels, sm, statsmodels.formula.api, smf
>>> from fxy.l import * # Learning: sklearn, xgboost, xgb
>>> from fxy.p import * # Plotting: matplotlib.pyplot, plt, matplotlib, seaborn, sns

Installation

  • pip3 install fxy to get the import shortcuts.

  • pip3 install fxy[main] to install all libraries except xgboost,

  • pip3 install fxy[all] (slower) to install all libraries for which the shortcuts exist.

Note: if sympy returns an error, like:

ValueError: The TextBackend supports only expressions over a 1D range

Then you don’t have matplotlib, and install it to display more advanced graphs.

  • pip3 install --upgrade pip wheel setuptools make sure you have latest to easily install matplotlib.

Usage

The package defines the fx command, if you just want Python with something, run:

  • $ fx -i[n|s|a|p|l] - plain Python (i: “IPython off”)

  • $ fx -[n|s|a|p|l] - with IPython

Examples

In command line

Try various imports:

  • $ fx – n(mpmath) and plotting included, under IPython.

  • $ fx -i – n(mpmath) and plotting included, under plain Python.

  • $ fx -s – n(mpmath) + s(isympy) on top.

  • $ fx -ap– n(mpmath) + a(numpy, pandas, xarray, scipy, statsmodels), p(matplotlib, seaborn)

  • $ fx -sap – n(mpmath) + s(isympy) + a(numpy, pandas, xarray, scipy, statsmodels), p(matplotlib, seaborn)

  • $ fx -salp – n(mpmath) + s(isympy) + a(numpy, pandas, xarray, scipy, statsmodels), l(sklearn.* as sklearn, xgboost as xgb), p(matplotlib, seaborn)

Just include the i, e.g. fx -islap in the command to have imports under plain Python.

Within notebooks and Python code

NB: This package does not assume versions of the imported packages, it just performs the basic imports, assuming that those namespaces within those packages will exist for a long time to come, so it is dependencies-agnostic.

# Numeric (mpmath.*)
>>> from fxy.n import * (394 functions)
>>> pi
<pi: 3.14159~>

# Symbolic (sympy.*)
>>> from fxy.s import * (915 functions, and "isympy" imports)
>>> f = x**4 - 4*x**3 + 4*x**2 - 2*x + 3
>>> f.subs([(x, 2), (y, 4), (z, 0)])
-1
>>> plot(f)

# Actuarial (np: numpy, pd: pandas, sm: statsmodels.api, sp: scipy, st: scipy.stats, smf: statsmodels.formula.api, statsmodels)
>>> from fxy.a import *
>>> df = pandas.DataFrame({'x': numpy.arange(10), 'y': np.random.random(10)})
>>> df.sum()
x    45.000000
y     4.196558
dtype: float64

# Learning (sklearn.* as sklearn)
>>> from fxy.l import *
>>> X = [[0], [1], [2], [3]]
>>> y = [0, 0, 1, 1]
>>> neigh = sklearn.neighbors.KNeighborsClassifier(n_neighbors=3)
>>> neigh.fit(X, y)
>>> print(neigh.predict([[1.1]]))
[0]
>>> print(neigh.predict_proba([[0.9]]))
[[0.66666667 0.33333333]]

# Plotting (plt, matplotlib)
>>> from fxy.p import *
>>> plt.plot([1, 2, 3, 4])
>>> plt.ylabel('some numbers')
>>> plt.show()
<image>

Suggestions

If you use some initialization commonly, we suggest adding ~/.zshrc, something like, for example:

fxy() {
    fx -ap
}

If you are using vim with tmux with slimux, you may find it useful to something else to ~/.zshrc:

fxy() {
   if [ -n "$1" ]
     then
       mkdir -p "/home/mindey/Projects/Research/mindey/$1"
       cd "/home/mindey/Projects/Research/mindey/$1"
       touch main.py
       tmux new -s "$1-research" 'zsh' \; send-keys "vim main.py" Enter \; splitw -hd "python3 -mvenv .env && . .env/bin/activate; fx -ap"
     else
       echo "No project name selected."
   fi
}

This way, running something like fxy <name> makes a project folder and starts Python environment with packages fx -ap (IPython + Acturial + Plotting).

Conclusion

This package may be useful for computing basic things, doing things to emulate Python’s capabilities in computational and symbolic mathematics and statistics, so this package will introduce just convenient imports so that one doesn’t have to configure Jupyter notebook profile, to have those imports every time, and works well as an on-the-go calculator.

I often collect convenient computations and functions in various fields, like what WolframAlpha does cataloguing implementations of advanced computations to be reused.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fxy-0.5.2.tar.gz (11.7 kB view hashes)

Uploaded Source

Built Distribution

fxy-0.5.2-py3-none-any.whl (13.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page