Looking for scipy Keywords? Try Ask4Keywords

scipyErste Schritte mit scipy


Bemerkungen

Über Scipy

SciPy ist eine Sammlung mathematischer Algorithmen und Komfortfunktionen, die auf der Erweiterung Numpy von Python basieren. Die interaktive Python-Sitzung wird erheblich erweitert, indem dem Benutzer übergeordnete Befehle und Klassen zur Bearbeitung und Visualisierung von Daten zur Verfügung gestellt werden. Mit SciPy wird eine interaktive Python-Sitzung zu einer Umgebung für Datenverarbeitung und Systemprototyping, die mit Systemen wie MATLAB, IDL, Octave, R-Lab und SciLab konkurriert.

Der zusätzliche Vorteil von SciPy auf Basis von Python besteht darin, dass damit auch eine leistungsfähige Programmiersprache für die Entwicklung anspruchsvoller Programme und spezieller Anwendungen verfügbar ist. Wissenschaftliche Anwendungen, die SciPy verwenden, profitieren von der Entwicklung zusätzlicher Module in zahlreichen Nischen der Software-Landschaft von Entwicklern auf der ganzen Welt. Dem Python-Programmierer wurde alles von der parallelen Programmierung über Web- und Datenbankunterroutinen und -klassen zur Verfügung gestellt. All diese Möglichkeiten stehen zusätzlich zu den mathematischen Bibliotheken in SciPy zur Verfügung.

Versionen

Ausführung Veröffentlichungsdatum
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,0 rc2 2014-04-23
0,14,0 rc1 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,0 rc1 2013-10-10
0,12,1 2013-10-08
0,12,0 2013-04-06
0,12,0 rc1 2013-03-29
0,12,0b1 2013-02-16
0,11,0 2012-09-24
0,11,0 rc2 2012-08-12
0,11,0 rc1 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

Grundlegende Hallo Welt

Erstellen Sie eine Datei (z. B. hello_world.py) in einem Texteditor oder einem Python-Editor, falls Sie eine installiert haben ( wählen Sie eine aus, wenn dies nicht der Fall ist - SublimeText, Eclipse, NetBeans, SciTe ... da sind viele!)

hwld = 'Hello world'
print(hwld)
 

Beachten Sie, dass Python-Variablen nicht explizit deklariert werden müssen. Die Deklaration geschieht, wenn Sie einer Variablen einen Wert mit dem Gleichheitszeichen (=) zuweisen.

Die Ausgabe der obigen zwei Codezeilen besteht darin, dass die Zeichenfolge "Hello World" angezeigt wird.

In Python geschriebene Funktionen können auch in iPython verwendet werden.

In diesem Fall können Sie Ihre gespeicherte Datei 'hello_world.py' wie folgt in IPython ausführen:

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
 

Wenn Sie möchten, können Sie zwei Variablen verwenden, z. B. eine für Hallo und eine für Welt, und diese mithilfe des Pluszeichens (+) verketten:

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

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

Konvertieren Sie eine spärliche Matrix mit SciPy in eine dichte Matrix

 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]])
 

Bildbearbeitung mit Scipy (Basic Image resize)

SciPy bietet grundlegende Bildbearbeitungsfunktionen. Dazu gehören Funktionen zum Lesen von Bildern von der Festplatte in numpy-Arrays, zum Schreiben von numpy-Arrays als Bilder auf die Festplatte und zum Ändern der Größe von Bildern.

Im folgenden Code wird nur ein Bild verwendet. Es wird getönt, in der Größe geändert und gespeichert. Sowohl das Original als auch die resultierenden Bilder werden unten gezeigt:

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

Referenz

Installation oder Setup

Scipy enthält in C, C ++ und Fortran geschriebene Teile, die vor der Verwendung kompiliert werden müssen. Stellen Sie daher sicher, dass die erforderlichen Compiler und Python-Entwicklungsheader installiert sind. Nachdem Code kompiliert wurde, benötigt Scipy außerdem zusätzliche Schritte zum Importieren aus Entwicklungsquellen, die im Folgenden erläutert werden.

Legen Sie eine Kopie des wichtigsten Scipy-Repositorys in Github auf Ihrem eigenen Konto an und erstellen Sie Ihr lokales Repository über:

$ git clone git@github.com:YOURUSERNAME/scipy.git scipy
$ cd scipy
$ git remote add upstream git://github.com/scipy/scipy.git
 

Wenn Sie die Entwicklungsversion von Scipy erstellen und Tests ausführen möchten, erzeugen Sie interaktive Shells mit ordnungsgemäß eingerichteten Python-Importpfaden usw. Führen Sie einen der folgenden Schritte aus:

$ 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
 

Dies baut Scipy zuerst auf, daher kann es beim ersten Mal eine Weile dauern. Wenn Sie -n angeben, werden die Tests gegen die Version von Scipy (sofern vorhanden) ausgeführt, die im aktuellen PYTHONPATH gefunden wird.

Die Verwendung von runtests.py ist der empfohlene Ansatz zum Ausführen von Tests. Es gibt auch eine Reihe von Alternativen, z. B. das direkte Erstellen oder Installieren in einer virtuellen Umgebung. Einige Tests sind sehr langsam und müssen separat aktiviert werden.

Link zur API

Ubuntu und Debian

Führen Sie den Befehl aus

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

Die Versionen in Ubuntu 12.10 oder neuer und Debian 7.0 oder neuer entsprechen der aktuellen Stackspezifikation von SciPy. Benutzer möchten möglicherweise auch das NeuroDebian- Repository für zusätzliche SciPy-Pakete hinzufügen.

Versionen

Die erste Version von SciPy, vsn 0.10, wurde am 14. August 2001 veröffentlicht. Die aktuelle Version von SciPy (korrekt am 26. Juli 2016) ist v 0.17 (stabil) mit v18 in Kürze. Details zu früheren Releases sind hier aufgelistet