Szukaj…


Uwagi

O Scipy

SciPy to zbiór algorytmów matematycznych i funkcji wygody zbudowany na rozszerzeniu Numpy Pythona. Dodaje to znaczną moc interaktywnej sesji Pythona, zapewniając użytkownikowi polecenia i klasy wysokiego poziomu do manipulowania i wizualizacji danych. Dzięki SciPy interaktywna sesja Pythona staje się konkurencyjnym środowiskiem do przetwarzania danych i prototypowania systemów, takimi jak MATLAB, IDL, Octave, R-Lab i SciLab.

Dodatkową korzyścią wynikającą z oparcia SciPy na Pythonie jest to, że udostępnia on również potężny język programowania do wykorzystania w tworzeniu wyrafinowanych programów i specjalistycznych aplikacji. Aplikacje naukowe wykorzystujące SciPy korzystają z rozwoju dodatkowych modułów w wielu niszach oprogramowania przez programistów z całego świata. Wszystko, od programowania równoległego do podprogramów i klas internetowych i baz danych, zostało udostępnione programiście Python. Cała ta moc jest dostępna oprócz bibliotek matematycznych w SciPy.

Wersje

Wersja Data wydania
0.19.0 2017-03-09
0.18.0 2016-07-25
0.17.0 22.01.2016
0.16.1 24.10.2015
0.16.0 2015-07-23
0,16b2 2015-05-24
0,16b1 2015-05-12
0.15.1 18.01.2015
0.15.0 11.01.2015
0.14.1 30.12.2014
0.14.1rc1 14.12.2014
0.14.0 2014-05-03
0.14.0rc2 23.04.2014
0.14.0rc1 02.04.2014
0.14.0b1 15.03.2014
0.13.3 2014-02-04
0.13.2 07.12.2013
0.13.1 16.11.2013
0.13.0 2013-10-19
0.13.0rc1 2013-10-10
0.12.1 08.10.2013
0.12.0 2013-04-06
0.12.0rc1 29.03.2013
0.12.0b1 16.02.2013
0.11.0 24.09.2012
0.11.0rc2 2012-08-12
0.11.0rc1 2012-07-17
0.11.0b1 2012-06-12
0.10.1 26.02.2012
0.10.1rc2 19.02.2012
0.10.1rc1 10.02.2012
0.10.0 13.11.2011
0.10.0rc1 2011-11-03
0.10.0b2 16.09.2011
0.10.0b1 2011-09-11
0.9.0 27.02.2011

Instalacja lub konfiguracja

Scipy zawiera części napisane w C, C ++ i Fortran, które należy skompilować przed użyciem. Dlatego upewnij się, że zainstalowane są niezbędne kompilatory i nagłówki programistyczne Python. Skompilowanie kodu oznacza również, że Scipy potrzebuje dodatkowych kroków do importowania ze źródeł programistycznych, które wyjaśniono poniżej.

Rozwinąć kopię głównego repozytorium Scipy w Github na własne konto, a następnie utworzyć lokalne repozytorium poprzez:

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

Aby zbudować wersję programistyczną Scipy i uruchomić testy, spawnuj interaktywne powłoki z poprawnie skonfigurowanymi ścieżkami importu Python i tak dalej. Wykonaj jedną z następujących czynności:

$ 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

To buduje najpierw Scipy, więc może to chwilę potrwać. Podanie -n spowoduje uruchomienie testów dla wersji Scipy (jeśli istnieje) znalezionej na bieżącej ścieżce PYTHONPATH.

Korzystanie z runtests.py jest zalecanym podejściem do uruchamiania testów. Istnieje również wiele alternatyw, na przykład kompilacja w miejscu lub instalacja w środowisku wirtualnym. Niektóre testy są bardzo wolne i należy je oddzielnie włączać.

Link do interfejsu API

Ubuntu i Debian

Uruchom polecenie

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

Wersje Ubuntu 12.10 lub nowszej i Debian 7.0 lub nowszej spełniają aktualną specyfikację stosu SciPy. Użytkownicy mogą również chcieć dodać repozytorium NeuroDebian dla dodatkowych pakietów SciPy.

Przekształć rzadką macierz w gęstą macierz za pomocą 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]])

Wersje

Pierwsze wydanie SciPy, w porównaniu z wersją 0.10, zostało wydane 14 sierpnia 2001 r. Obecne wydanie SciPy (poprawne na 26 lipca 2016 r.) To wersja 0.17 (stabilna), a wersja 18. będzie dostępna wkrótce. Szczegóły poprzednich wydań są wymienione tutaj

Manipulacja obrazem za pomocą Scipy (podstawowa zmiana rozmiaru obrazu)

SciPy zapewnia podstawowe funkcje manipulacji obrazem. Obejmują one funkcje odczytywania obrazów z dysku na tablice numpy, zapisywania tablic numpy na dysk jako obrazy oraz zmiany rozmiaru obrazów.

W poniższym kodzie użyto tylko jednego obrazu. Jest zabarwiony, zmieniony i zapisany. Zarówno oryginalne, jak i wynikowe obrazy pokazano poniżej:

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)

oryginalny resized_tinted

Odniesienie

Basic Hello World

Utwórz plik (np. Hello_world.py) w edytorze tekstów lub edytorze python, jeśli go masz ( wybierz jeden, jeśli nie masz - SublimeText, Eclipse, NetBeans, SciTe ... jest ich wiele!)

hwld = 'Hello world'
print(hwld)

Zauważ, że zmienne Pythona nie muszą być jawnie deklarowane; deklaracja dzieje się, gdy przypisujesz wartość ze znakiem równości (=) do zmiennej.

Wynikiem powyższych dwóch wierszy kodu jest wyświetlenie ciągu „Hello World”.

Funkcje napisane w Pythonie mogą być również używane w iPython.

W tym przypadku możesz użyć uruchomienia zapisanego pliku „hello_world.py” w IPython w następujący sposób:

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

Jeśli chcesz, możesz użyć dwóch zmiennych, np. Jednej dla hello i jednej dla world i połączyć je za pomocą znaku plus (+):

 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow