scipy учебник
Начало работы с scipy
Поиск…
замечания
SciPy - это набор математических алгоритмов и удобных функций, основанных на расширении Numpy Python. Он добавляет значительную силу для интерактивного сеанса Python, предоставляя пользователю команды и классы высокого уровня для управления и визуализации данных. С SciPy интерактивный сеанс Python становится средой для обработки данных и системного прототипирования, таких как MATLAB, IDL, Octave, R-Lab и SciLab.
Дополнительным преимуществом базирования SciPy на Python является то, что это также позволяет использовать мощный язык программирования для разработки сложных программ и специализированных приложений. Научные приложения, использующие SciPy, выигрывают от разработки дополнительных модулей в многочисленных нишах программного ландшафта разработчиками по всему миру. Все от параллельного программирования до подпрограмм и классов базы данных и баз данных было доступно для программиста Python. Вся эта мощность доступна в дополнение к математическим библиотекам в SciPy.
Версии
| Версия | Дата выхода |
|---|---|
| 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 |
Установка или настройка
Scipy содержит части, написанные на C, C ++ и Fortran, которые необходимо скомпилировать перед использованием. Поэтому убедитесь, что установлены необходимые компиляторы и заголовки разработки Python. Скомпилированный код также означает, что Scipy требует дополнительных шагов для импорта из источников разработки, которые объясняются ниже.
Выполните копию основного хранилища Scipy в Github на свою собственную учетную запись, а затем создайте локальный репозиторий через:
$ git clone [email protected]:YOURUSERNAME/scipy.git scipy
$ cd scipy
$ git remote add upstream git://github.com/scipy/scipy.git
Чтобы создать версию разработки Scipy и запустить тесты, создайте интерактивные оболочки с правильно настроенными путями импорта Python и так далее. Выполните одно из следующих действий:
$ 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
Сначала это создает Scipy, поэтому это может занять некоторое время в первый раз. Задание -n будет запускать тесты против версии Scipy (если есть), найденной в текущем PYTHONPATH.
Использование runtests.py - рекомендуемый подход к запуску тестов. Существует также ряд альтернатив, например сборка на месте или установка в виртуальную среду. Некоторые тесты очень медленные, и их необходимо отдельно включить.
Ubuntu & Debian
Команда запуска
sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
Версии в Ubuntu 12.10 или новее и Debian 7.0 или новее соответствуют текущей спецификации стека SciPy. Пользователи также могут захотеть добавить репозиторий NeuroDebian для дополнительных пакетов SciPy.
Преобразование разреженной матрицы в плотную матрицу с использованием 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]])
Версии
Первый релиз SciPy, vsn 0.10, был выпущен 14 августа 2001 года. Текущая версия SciPy (исправленная 26 июля 2016 года) - v 0.17 (стабильная) с v .18 в ближайшее время. Подробная информация о бывших выпусках перечислены здесь
Манипуляция изображения с использованием Scipy (изменение основного изображения)
SciPy предоставляет основные функции манипуляции изображениями. К ним относятся функции чтения изображений с диска в массивы numpy, для записи массивов numpy на диск в качестве изображений и для изменения размеров изображений.
В следующем коде используется только одно изображение. Он тонирован, изменен и сохранен. Как исходные, так и результирующие изображения показаны ниже:
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)
Основной Hello World
Создайте файл (например, hello_world.py) в текстовом редакторе или в редакторе python, если у вас есть установленный ( выберите один, если вы этого не сделаете - SublimeText, Eclipse, NetBeans, SciTe ... есть много!)
hwld = 'Hello world'
print(hwld)
Обратите внимание, что переменные python не должны быть явно объявлены; объявление происходит, когда вы присваиваете значение равному значению (=) переменной.
Вывод двух строк кода состоит в том, что будет отображаться строка «Hello World».
Функции, написанные на Python, также могут использоваться в iPython.
В этом случае вы можете использовать запуск сохраненного файла «hello_world.py» в IPython следующим образом:
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
Если вы хотите, вы можете использовать две переменные, например, один для приветствия и один для мира, и объединить их с помощью знака плюс (+):
h = 'Hello '
w = "world!'
print(h+w)
#this will also output Hello World, only this time with an exclamation mark..

