Sök…


Anmärkningar

Om Scipy

SciPy är en samling av matematiska algoritmer och bekvämlighetsfunktioner som bygger på Numpy-förlängningen av Python. Det tillför betydande kraft till den interaktiva Python-sessionen genom att ge användaren kommandon och klasser på hög nivå för att manipulera och visualisera data. Med SciPy blir en interaktiv Python-session ett system för databehandling och systemprototypmiljö som konkurrerar som MATLAB, IDL, Octave, R-Lab och SciLab.

Den ytterligare fördelen med att basera SciPy på Python är att detta också gör ett kraftfullt programmeringsspråk tillgängligt för att utveckla sofistikerade program och specialiserade applikationer. Vetenskapliga applikationer som använder SciPy drar nytta av utvecklingen av ytterligare moduler i många nischer i mjukvarulandskapet av utvecklare över hela världen. Allt från parallell programmering till webb- och databasunderrutiner och klasser har gjorts tillgängliga för Python-programmeraren. All denna kraft är tillgänglig utöver de matematiska biblioteken i SciPy.

versioner

Version Utgivningsdatum
0.19.0 2017/03/09
0.18.0 2016/07/25
0.17.0 2016/01/22
0.16.1 2015/10/24
0.16.0 2015/07/23
0.16b2 2015/05/24
0.16b1 2015/05/12
0.15.1 2015/01/18
0.15.0 2015/01/11
0.14.1 2014/12/30
0.14.1rc1 2014/12/14
0.14.0 2014/05/03
0.14.0rc2 2014/04/23
0.14.0rc1 2014/04/02
0.14.0b1 2014/03/15
0.13.3 2014/02/04
0.13.2 2013/12/07
0.13.1 2013/11/16
0.13.0 2013/10/19
0.13.0rc1 2013/10/10
0.12.1 2013/10/08
0.12.0 2013/04/06
0.12.0rc1 2013/03/29
0.12.0b1 2013/02/16
0.11.0 2012-09-24
0.11.0rc2 2012/08/12
0.11.0rc1 2012-07-17
0.11.0b1 2012-06-12
0.10.1 2012-02-26
0.10.1rc2 2012-02-19
0.10.1rc1 2012-02-10
0.10.0 2011-11-13
0.10.0rc1 2011-11-03
0.10.0b2 2011-09-16
0.10.0b1 2011-09-11
0.9.0 2011-02-27

Installation eller installation

Scipy innehåller delar skrivna i C, C ++ och Fortran som måste sammanställas före användning. Se därför till att nödvändiga kompilatorer och Python-utvecklingshuvuden är installerade. Att ha sammanställt kod innebär också att Scipy behöver ytterligare steg för att importera från utvecklingskällor, vilket förklaras nedan.

Skicka en kopia av huvudsakliga Scipy-förvaret i Github till ditt eget konto och skapa sedan ditt lokala arkiv via:

$ git clone [email protected]:YOURUSERNAME/scipy.git scipy
$ cd scipy
$ git remote add upstream git://github.com/scipy/scipy.git

För att bygga utvecklingsversionen av Scipy och köra tester, spawn interaktiva skal med Python-importvägarna korrekt konfigurerade, och så vidare. Gör en av följande:

$ python runtests.py -v
$ python runtests.py -v -s optimize
$ python runtests.py -v -t scipy/special/tests/test_basic.py:test_xlogy
$ python runtests.py --ipython
$ python runtests.py --python somescript.py
$ python runtests.py --bench

Detta bygger Scipy först, så det kan ta ett tag första gången. Att ange -n kör testen mot versionen av Scipy (om någon) som finns på den aktuella PYTHONPATH.

Att använda runtests.py är det rekommenderade tillvägagångssättet för körtester. Det finns också ett antal alternativ till det, till exempel att bygga på plats eller installera i en virtuell miljö. Vissa test är mycket långsamma och måste aktiveras separat.

Länk till API

Ubuntu & Debian

Kör kommando

sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

Versionerna i Ubuntu 12.10 eller nyare och Debian 7.0 eller nyare uppfyller den aktuella SciPy-stackspecifikationen. Användare kanske också vill lägga till NeuroDebian- arkivet för extra SciPy-paket.

Konvertera en gles matris till en tät matris med SciPy

 from scipy.sparse import csr_matrix
 A = csr_matrix([[1,0,2],[0,3,0]])
 >>>A
 <2x3 sparse matrix of type '<type 'numpy.int64'>'
    with 3 stored elements in Compressed Sparse Row format>
 >>> A.todense()
   matrix([[1, 0, 2],
           [0, 3, 0]])
 >>> A.toarray()
      array([[1, 0, 2],
            [0, 3, 0]])

versioner

Den första utgåvan av SciPy, vsn 0,10, släpptes den 14 augusti 2001. Den nuvarande utgåvan av SciPy (korrekt 26 juli 2016) är v 0,17 (stabil) med v .18 kommer snart. Detaljer om tidigare utgivningar listas här

Bildmanipulering med hjälp av Scipy (storleksbildsstorlek)

SciPy tillhandahåller grundläggande manipuleringsfunktioner. Dessa inkluderar funktioner för att läsa bilder från disk till numpy arrays, för att skriva numpy arrays till disk som bilder och för att ändra storlek på bilder.

I följande kod används bara en bild. Den är tonad, ändrad storlek och sparad. Både original- och resulterande bilder visas nedan:

import numpy as np  //scipy is numpy-dependent

from scipy.misc import imread, imsave, imresize   //image resizing functions

# Read an JPEG image into a numpy array
img = imread('assets/cat.jpg')
print img.dtype, img.shape  # Prints "uint8 (400, 248, 3)"

# We can tint the image by scaling each of the color channels
# by a different scalar constant. The image has shape (400, 248, 3);
# we multiply it by the array [1, 0.95, 0.9] of shape (3,);
# numpy broadcasting means that this leaves the red channel unchanged,
# and multiplies the green and blue channels by 0.95 and 0.9
# respectively.
img_tinted = img * [1, 0.95, 0.9]

# Resize the tinted image to be 300 by 300 pixels.
img_tinted = imresize(img_tinted, (300, 300))

# Write the tinted image back to disk
imsave('assets/cat_tinted.jpg', img_tinted)

original- resized_tinted

Referens

Grundläggande Hello World

Skapa en fil (t.ex. hello_world.py) i en textredigerare eller en pythonredigerare om du har en installerad ( välj en om du inte gör det - SublimeText, Eclipse, NetBeans, SciTe ... det finns många!)

hwld = 'Hello world'
print(hwld)

Observera att pythonvariabler inte behöver deklareras uttryckligen; deklarationen inträffar när du tilldelar ett värde med samma (=) -tecken till en variabel.

Utmatningen från ovanstående två kodrader är att strängen "Hello World" kommer att visas.

Funktioner skrivna i Python kan också användas i iPython.

I det här fallet kan du använda köra din sparade fil 'hello_world.py' i IPython så:

In [1]: %run hello_world.py  
#run file to get output below
Hello world
In [2]: wld   
#show what value of wld var is
Out[2]: 'Hello world'
In [3]: %whowld  
#display info on variable wld (name/type/value)

Variable     Type     Data/Info
----------------------------
wld         str     Hello world

Om du önskar kan du använda två variabler, t.ex. en för hej och en för världen och sammanfoga dem med plustecknet (+):

 h = 'Hello '
 w = "world!'
 print(h+w)

 #this will also output Hello World, only this time with an exclamation mark..


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow