I've seen both:
import scipy as sp and:
import scipy as sc Is there an official preference listed anywhere?
For example, in the Introduction of the Scipy documentation, it is recommended to
import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt but a similar abbreviation is not offered for the Scipy package.
In this question, sp is recommended, but the link to the Scipy docs doesn't actually specify sp over sc.
4 Answers
EDIT: As of version 1.9, scipy has changed so that import scipy now allows access to the modules but only actually loads them when they are used. Please refer to the answer from tupui below (and upvote that answer to make it the top one!). For historical purposes, here is my answer from 2016:
The "official" answer, according to the Scipy documentation, is that there is really no reason to ever
import scipy since all of the interesting functions in Scipy are actually located in the submodules, which are not automatically imported. Therefore, the recommended method is to use
from scipy import fftpack from scipy import integrate then, functions can be called with
fftpack.fft() Personally, I always use
import scipy.fftpack and live with the slightly longer function call
scipy.fftpack.fft(data) This way I know where the functions are coming from.
2As cel pointed out, the API documentation recommends to not import scipy, but to import specific modules from scipy:
The scipy namespace itself only contains functions imported from numpy. These functions still exist for backwards compatibility, but should be imported from numpy directly.
Therefore, importing only the scipy base package does only provide numpy content, which could be imported from numpy directly.
If somebody still wants the main package, sp for Scipy would be convenient as np usially is used for NumPy.
SciPy maintainer here.
Before SciPy 1.9, we recommended people to not import the main namespace (import scipy) because this would recursively import everything leading to long import time.
Now we have a lazy loading mechanism which does not incur any performance penalty. So you can do import scipy and modules are only loaded when you use them.
To answer the OP, we do not have a recommended way to import SciPy. There are strong opinions among maintainers. Some maintainers advocate for never using aliases while other would welcome one.
My personal take is that, while the project does not recommend the use of an alias, if people are still going to use one, it would be best if everyone doing so would use the same. sp seems to be more used and libraries like NetworkX and Scikit-Image use this convention internally.
Based on github repositories the most commonly used is:
import scipy as sp
3