scipy | SciPy library main repository

 by   scipy Python Version: 1.12.0rc2 License: BSD-3-Clause

kandi X-RAY | scipy Summary

kandi X-RAY | scipy Summary

scipy is a Python library. scipy has no bugs, it has no vulnerabilities, it has build file available, it has a Permissive License and it has high support. You can install using 'pip install scipy' or download it from GitHub, PyPI.

SciPy library main repository

            kandi-support Support

              scipy has a highly active ecosystem.
              It has 11340 star(s) with 4745 fork(s). There are 348 watchers for this library.
              There were 5 major release(s) in the last 6 months.
              There are 1373 open issues and 7755 have been closed. On average issues are closed in 48 days. There are 275 open pull requests and 0 closed requests.
              It has a positive sentiment in the developer community.
              The latest version of scipy is 1.12.0rc2

            kandi-Quality Quality

              scipy has 0 bugs and 0 code smells.

            kandi-Security Security

              scipy has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              scipy code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              scipy is licensed under the BSD-3-Clause License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              scipy releases are available to install and integrate.
              Deployable package is available in PyPI.
              Build file is available. You can build the component from source.
              scipy saves you 191325 person hours of effort in developing the same functionality from scratch.
              It has 216613 lines of code, 17977 functions and 957 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed scipy and discovered the below as its top functions. This is intended to give you an instant insight into scipy implemented functionality, and help decide if they suit your requirements.
            • Calculate least squares .
            • Linear Grammar algorithm .
            • r Solve an IVP .
            • r Solve a problem .
            • Compute the lsqr of A and b .
            • Integrate quadratic integrand .
            • Test a permutation test .
            • r Solve the linear operator .
            • r Solve a binary quadratic problem .
            • Solve linear problem .
            Get all kandi verified functions for this library.

            scipy Key Features

            No Key Features are available at this moment for scipy.

            scipy Examples and Code Snippets

            NumPy Distutils - Users Guide-SciPy pure Python package example
            Pythondot img1Lines of Code : 0dot img1License : Permissive (BSD-3-Clause)
            copy iconCopy
            if __name__ == "__main__":
                from numpy.distutils.core import setup
            Convert value to a scipy tensor .
            pythondot img2Lines of Code : 34dot img2License : Non-SPDX (Apache License 2.0)
            copy iconCopy
            def _convert_scipy_sparse_tensor(value, expected_input):
              """Handle scipy sparse tensor conversions.
              This method takes a value 'value' and returns the proper conversion. If
              value is a scipy sparse tensor and the expected input is a dense tensor  
            Returns a scipy name scope .
            pythondot img3Lines of Code : 25dot img3License : Non-SPDX (Apache License 2.0)
            copy iconCopy
            def name_scope(name):
              """A context manager for use when defining a Python op.
              This context manager pushes a name scope, which will make the name of all
              operations added within it have a prefix.
              For example, to define a new Python op called   
            Convert a scipy to a SparseTensor .
            pythondot img4Lines of Code : 10dot img4License : Non-SPDX (Apache License 2.0)
            copy iconCopy
            def _scipy_sparse_to_sparse_tensor(t):
              """Converts a SciPy sparse matrix to a SparseTensor."""
              sparse_coo = t.tocoo()
              row, col = sparse_coo.row, sparse_coo.col
              data, shape =, sparse_coo.shape
              if issubclass(data.dtype.type, n  
            Altair: Creating a layered violin + stripplot
            Pythondot img5Lines of Code : 67dot img5License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            import altair as alt
            from vega_datasets import data
            df =
            # 1. Create violin plot
            violin = alt.Chart(df).transform_density(
                as_=["Horsepower", "density"],
            Adding a non-zero scalar to sparse matrix
            Pythondot img6Lines of Code : 35dot img6License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            In [166]: from scipy import sparse
            In [167]: M = sparse.random(5,5,.2,'csc')
            In [168]: M
            <5x5 sparse matrix of type ''
                with 5 stored elements in Compressed Sparse Column format>
            In [169]: M.A
            scipy.stats.norm for array of values with different accuracy in different method
            Pythondot img7Lines of Code : 9dot img7License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            x = np.random.rand(30, 2).astype(np.float128)
            x_test = np.random.rand(5,2).astype(np.float128)
            print(gx[:,0] - gx0)
            [0. 0. 0. 0. 0.]
            SciPy: interpolate scattered data on 3D grid
            Pythondot img8Lines of Code : 23dot img8License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            chunk_val = 2000000                  # it is arbitrary and must be choosed based on the system rams size 
            chunk = xi.shape[0] // chunk_val
            chunk_res = xi.shape[0] % chunk_val
            # by array
            di = np.array([])
            start = 0
            for i in range(chunk + 1
            Scipy optimize to target
            Pythondot img9Lines of Code : 2dot img9License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            res = scipy.optimize.minimize_scalar(lambda x: goal_seek_func(x)**2) 
            Approximating the conditional expectation E(X|Y)
            Pythondot img10Lines of Code : 17dot img10License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            P(X) = probability of X being True = (# of True elements in X) / (# of elements in X)
            P(Y) = probability of Y being True = (# of True elements in Y) / (# of elements in Y)
            P(X and Y) = probability of both X and Y being True = P(X) * P(Y)

            Community Discussions


            Padding scipy affine_transform output to show non-overlapping regions of transformed images
            Asked 2022-Mar-28 at 11:54

            I have source (src) image(s) I wish to align to a destination (dst) image using an Affine Transformation whilst retaining the full extent of both images during alignment (even the non-overlapping areas).

            I am already able to calculate the Affine Transformation rotation and offset matrix, which I feed to scipy.ndimage.interpolate.affine_transform to recover the dst-aligned src image.

            The problem is that, when the images are not fuly overlapping, the resultant image is cropped to only the common footprint of the two images. What I need is the full extent of both images, placed on the same pixel coordinate system. This question is almost a duplicate of this one - and the excellent answer and repository there provides this functionality for OpenCV transformations. I unfortunately need this for scipy's implementation.

            Much too late, after repeatedly hitting a brick wall trying to translate the above question's answer to scipy, I came across this issue and subsequently followed to this question. The latter question did give some insight into the wonderful world of scipy's affine transformation, but I have as yet been unable to crack my particular needs.

            The transformations from src to dst can have translations and rotation. I can get translations only working (an example is shown below) and I can get rotations only working (largely hacking around the below and taking inspiration from the use of the reshape argument in scipy.ndimage.interpolation.rotate). However, I am getting thoroughly lost combining the two. I have tried to calculate what should be the correct offset (see this question's answers again), but I can't get it working in all scenarios.

            Translation-only working example of padded affine transformation, which follows largely this repo, explained in this answer:



            Answered 2022-Mar-22 at 16:44

            If you have two images that are similar (or the same) and you want to align them, you can do it using both functions rotate and shift :



            Cannot import name '_centered' from 'scipy.signal.signaltools'
            Asked 2022-Mar-22 at 12:29

            Unable to import functions from scipy module.

            Gives error :



            Answered 2022-Feb-17 at 08:30

            I encountered the same problem while using statsmodels~=0.12.x. Increasing the statsmodels package to version 0.13.2, this import issue is resolved.

            UPDATE with more notes:

            • before:
              • installation of fixed version of statsmodels==0.12.2 which is dependent on scipy
              • there was newly released scipy==1.8.0 - 2022-02-05
                • when installing it, got this problem:



            Installing scipy and scikit-learn on apple m1
            Asked 2022-Mar-22 at 06:21

            The installation on the m1 chip for the following packages: Numpy 1.21.1, pandas 1.3.0, torch 1.9.0 and a few other ones works fine for me. They also seem to work properly while testing them. However when I try to install scipy or scikit-learn via pip this error appears:

            ERROR: Failed building wheel for numpy

            Failed to build numpy

            ERROR: Could not build wheels for numpy which use PEP 517 and cannot be installed directly

            Why should Numpy be build again when I have the latest version from pip already installed?

            Every previous installation was done using python3.9 -m pip install ... on Mac OS 11.3.1 with the apple m1 chip.

            Maybe somebody knows how to deal with this error or if its just a matter of time.



            Answered 2021-Aug-02 at 14:33

            Please see this note of scikit-learn about

            Installing on Apple Silicon M1 hardware

            The recently introduced macos/arm64 platform (sometimes also known as macos/aarch64) requires the open source community to upgrade the build configuation and automation to properly support it.

            At the time of writing (January 2021), the only way to get a working installation of scikit-learn on this hardware is to install scikit-learn and its dependencies from the conda-forge distribution, for instance using the miniforge installers:


            The following issue tracks progress on making it possible to install scikit-learn from PyPI with pip:




            Why should I use normalised units in numerical integration?
            Asked 2022-Mar-19 at 10:40

            I was simulating the solar system (Sun, Earth and Moon). When I first started working on the project, I used the base units: meters for distance, seconds for time, and metres per second for velocity. Because I was dealing with the solar system, the numbers were pretty big, for example the distance between the Earth and Sun is 150·10⁹ m.

            When I numerically integrated the system with scipy.solve_ivp, the results were completely wrong. Here is an example of Earth and Moon trajectories.

            But then I got a suggestion from a friend that I should use standardised units: astronomical unit (AU) for distance and years for time. And the simulation started working flawlessly!

            My question is: Why is this a generally valid advice for problems such as mine? (Mind that this is not about my specific problem which was already solved, but rather why the solution worked.)



            Answered 2021-Jul-25 at 07:42

            Most, if not all integration modules work best out of the box if:

            • your dynamical variables have the same order of magnitude;
            • that order of magnitude is 1;
            • the smallest time scale of your dynamics also has the order of magnitude 1.

            This typically fails for astronomical simulations where the orders of magnitude vary and values as well as time scales are often large in typical units.

            The reason for the above behaviour of integrators is that they use step-size adaption, i.e., the integration step is adjusted to keep the estimated error at a defined level. The step-size adaption in turn is governed by a lot of parameters like absolute tolerance, relative tolerance, minimum time step, etc. You can usually tweak these parameters, but if you don’t, there need to be some default values and these default values are chosen with the above setup in mind.


            You might ask yourself: Can these parameters not be chosen more dynamically? As a developer and maintainer of an integration module, I would roughly expect that introducing such automatisms has the following consequences:

            • About twenty in a thousand users will not run into problems like yours.
            • About fifty a thousand users (including the above) miss an opportunity to learn rudimentary knowledge about how integrators work and reading documentations.
            • About one in thousand users will run into a horrible problem with the automatisms that is much more difficult to solve than the above.
            • I need to introduce new parameters governing the automatisms that are even harder to grasp for the average user.
            • I spend a lot of time in devising and implementing the automatisms.



            How could I speed up my written python code: spheres contact detection (collision) using spatial searching
            Asked 2022-Mar-13 at 15:43

            I am working on a spatial search case for spheres in which I want to find connected spheres. For this aim, I searched around each sphere for spheres that centers are in a (maximum sphere diameter) distance from the searching sphere’s center. At first, I tried to use scipy related methods to do so, but scipy method takes longer times comparing to equivalent numpy method. For scipy, I have determined the number of K-nearest spheres firstly and then find them by cKDTree.query, which lead to more time consumption. However, it is slower than numpy method even by omitting the first step with a constant value (it is not good to omit the first step in this case). It is contrary to my expectations about scipy spatial searching speed. So, I tried to use some list-loops instead some numpy lines for speeding up using numba prange. Numba run the code a little faster, but I believe that this code can be optimized for better performances, perhaps by vectorization, using other alternative numpy modules or using numba in another way. I have used iteration on all spheres due to prevent probable memory leaks and …, where number of spheres are high.



            Answered 2022-Feb-14 at 10:23

            Have you tried FLANN?

            This code doesn't solve your problem completely. It simply finds the nearest 50 neighbors to each point in your 500000 point dataset:



            Colab: (0) UNIMPLEMENTED: DNN library is not found
            Asked 2022-Feb-08 at 19:27

            I have pretrained model for object detection (Google Colab + TensorFlow) inside Google Colab and I run it two-three times per week for new images I have and everything was fine for the last year till this week. Now when I try to run model I have this message:



            Answered 2022-Feb-07 at 09:19

            It happened the same to me last friday. I think it has something to do with Cuda instalation in Google Colab but I don't know exactly the reason



            Cannot find conda info. Please verify your conda installation on EMR
            Asked 2022-Feb-05 at 00:17

            I am trying to install conda on EMR and below is my bootstrap script, it looks like conda is getting installed but it is not getting added to environment variable. When I manually update the $PATH variable on EMR master node, it can identify conda. I want to use conda on Zeppelin.

            I also tried adding condig into configuration like below while launching my EMR instance however I still get the below mentioned error.



            Answered 2022-Feb-05 at 00:17

            I got the conda working by modifying the script as below, emr python versions were colliding with the conda version.:



            Edge weight in networkx
            Asked 2022-Feb-02 at 14:20

            How do I assign to each edge a weight equals to the number of times node i and j interacted from an edge list?



            Answered 2022-Feb-02 at 14:20

            You can first aggregate the pandas tables to have a weight column, and then load it to networkx with that edge column:



            ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects
            Asked 2022-Jan-28 at 03:50

            Error while installing manimce, I have been trying to install manimce library on windows subsystem for linux and after running



            Answered 2022-Jan-28 at 02:24
            apt-get install sox ffmpeg libcairo2 libcairo2-dev
            apt-get install texlive-full
            pip3 install manimlib  # or pip install manimlib



            Is it possible to use a collection of hyperspectral 1x1 pixels in a CNN model purposed for more conventional datasets (CIFAR-10/MNIST)?
            Asked 2021-Dec-17 at 09:08

            I have created a working CNN model in Keras/Tensorflow, and have successfully used the CIFAR-10 & MNIST datasets to test this model. The functioning code as seen below:



            Answered 2021-Dec-16 at 10:18

            If the hyperspectral dataset is given to you as a large image with many channels, I suppose that the classification of each pixel should depend on the pixels around it (otherwise I would not format the data as an image, i.e. without grid structure). Given this assumption, breaking up the input picture into 1x1 parts is not a good idea as you are loosing the grid structure.

            I further suppose that the order of the channels is arbitrary, which implies that convolution over the channels is probably not meaningful (which you however did not plan to do anyways).

            Instead of reformatting the data the way you did, you may want to create a model that takes an image as input and also outputs an "image" containing the classifications for each pixel. I.e. if you have 10 classes and take a (145, 145, 200) image as input, your model would output a (145, 145, 10) image. In that architecture you would not have any fully-connected layers. Your output layer would also be a convolutional layer.

            That however means that you will not be able to keep your current architecture. That is because the tasks for MNIST/CIFAR10 and your hyperspectral dataset are not the same. For MNIST/CIFAR10 you want to classify an image in it's entirety, while for the other dataset you want to assign a class to each pixel (while most likely also using the pixels around each pixel).

            Some further ideas:

            • If you want to turn the pixel classification task on the hyperspectral dataset into a classification task for an entire image, maybe you can reformulate that task as "classifying a hyperspectral image as the class of it's center (or top-left, or bottom-right, or (21th, 104th), or whatever) pixel". To obtain the data from your single hyperspectral image, for each pixel, I would shift the image such that the target pixel is at the desired location (e.g. the center). All pixels that "fall off" the border could be inserted at the other side of the image.
            • If you want to stick with a pixel classification task but need more data, maybe split up the single hyperspectral image you have into many smaller images (e.g. 10x10x200). You may even want to use images of many different sizes. If you model only has convolution and pooling layers and you make sure to maintain the sizes of the image, that should work out.


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install scipy

            You can install using 'pip install scipy' or download it from GitHub, PyPI.
            You can use scipy like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.


            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries