Предисловие переводчика
Добрый день, Хабр.Я запускаю серию статей, которые представляют собой переводы небольшого мана от numpy, ссылка .
Наслаждайся чтением.
Часть 2
Часть 3
Часть 4
Введение
NumPy — это модуль с открытым исходным кодом для Python, который обеспечивает общие математические и числовые операции в виде предварительно скомпилированных быстрых функций.Они объединены в пакеты высокого уровня.
Они предоставляют функциональность, которую можно сравнить с функциональностью MatLab. NumPy (Numeric Python) предоставляет базовые методы для работы с большими массивами и матрицами.
SciPy (Scientific Python) расширяет функциональность numpy огромной коллекцией полезных алгоритмов, таких как минимизация, преобразование Фурье, регрессия и другие прикладные математические методы.
Монтаж
Если у вас есть Python(x, y) ( Примечание переводчика: Python(x, y) — это дистрибутив бесплатного научного и инженерного программного обеспечения для численных расчетов, анализа и визуализации данных на основе языка программирования Python и большого количества модулей (библиотек)) на платформе Windows, тогда вы готовы приступить к работе..
Если нет, то после установки Python вам необходимо самостоятельно установить пакеты, сначала NumPy, затем SciPy. Возможна установка Здесь .
Следите за установкой на странице, там все предельно понятно.
Некоторая дополнительная информация
Сообщество NumPy и SciPy поддерживает онлайн-руководство, включая руководства и учебные пособия, здесь: docs.scipy.org/doc. Импорт модуля numpy Существует несколько путей импорта.Стандартный метод — использовать простое выражение:
Однако при большом количестве вызовов функций numpy становится утомительно писать numpy.X снова и снова.>>> import numpy
Гораздо проще сделать это следующим образом: >>> import numpy as np
Это выражение позволяет нам получать доступ к объектам numpy, используя np.X вместо numpy.X. Вы также можете импортировать numpy непосредственно в используемое вами пространство имен, поэтому вам вообще не нужно использовать пунктирные функции, а вызывать их напрямую: >>> from numpy import *
Однако этот вариант не приветствуется в программировании на Python, поскольку он удаляет некоторые полезные структуры, предоставляемые модулем.
В оставшейся части этого руководства мы будем использовать второй вариант импорта (импортировать numpy как np).
Массивы
Основная особенность numpy — это объект массива.Массивы похожи на списки в Python, за исключением того, что элементы массива должны иметь один и тот же тип данных, например float и int. С помощью массивов можно выполнять числовые операции с большими объемами информации во много раз быстрее, а главное гораздо эффективнее, чем со списками.
Создание массива из списка: a = np.array([1, 4, 5, 8], float)
>>> a
array([ 1., 4., 5., 8.])
>>> type(a)
<class 'numpy.ndarray'>
Здесь функция массива принимает два аргумента: список для преобразования в массив и тип каждого элемента.
Ко всем элементам можно получить доступ и манипулировать ими так же, как и с обычными списками: >>> a[:2]
array([ 1., 4.])
>>> a[3]
8.0
>>> a[0] = 5.
>>> a
array([ 5., 4., 5., 8.])
Массивы также могут быть многомерными.
В отличие от списков, в круглых скобках можно использовать запятые.
Вот пример двумерного массива (матрицы): >>> a = np.array([[1, 2, 3], [4, 5, 6]], float)
>>> a
array([[ 1., 2., 3.],
[ 4., 5., 6.]])
>>> a[0,0]
1.0
>>> a[0,1]
2.0
Срез массива работает с многомерными массивами так же, как и с одномерными массивами, применяя каждый срез в качестве фильтра для указанного измерения.
Используйте «:» в измерении, чтобы указать использование всех элементов этого измерения: >>> a = np.array([[1, 2, 3], [4, 5, 6]], float)
>>> a[1,:]
array([ 4., 5., 6.])
>>> a[:,2]
array([ 3., 6.])
>>> a[-1:, -2:]
array([[ 5., 6.]])
Метод shape возвращает количество строк и столбцов в матрице: >>> a.shape
(2, 3)
Метод dtype возвращает тип переменных, хранящихся в массиве: >>> a.dtype
dtype('float64')
Здесь float64 — это числовой тип данных в numpy, который используется для хранения действительных чисел двойной точности.
Точно так же, как float в Python.
Метод len возвращает длину первого измерения (оси): a = np.array([[1, 2, 3], [4, 5, 6]], float)
>>> len(a)
2
Метод in используется для проверки наличия элемента в массиве: >>> a = np.array([[1, 2, 3], [4, 5, 6]], float)
>>> 2 in a
True
>>> 0 in a
False
Массивы можно переформатировать с помощью метода, определяющего новый многомерный массив.
Следуя следующему примеру, мы переформатируем одномерный массив из десяти элементов в двумерный массив, состоящий из пяти строк и двух столбцов: >>> a = np.array(range(10), float)
>>> a
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
>>> a = a.reshape((5, 2))
>>> a
array([[ 0., 1.],
[ 2., 3.],
[ 4., 5.],
[ 6., 7.],
[ 8., 9.]])
>>> a.shape
(5, 2)
Обратите внимание, что метод reshape создает новый массив, а не изменяет исходный.
Имейте в виду, что привязка имен в Python также работает с массивами.
Метод копирования используется для создания копии существующего массива в памяти: >>> a = np.array([1, 2, 3], float)
>>> b = a
>>> c = a.copy()
>>> a[0] = 0
>>> a
array([0., 2., 3.])
>>> b
array([0., 2., 3.])
>>> c
array([1., 2., 3.])
Списки также можно создавать из массивов: >>> a = np.array([1, 2, 3], float)
>>> a.tolist()
[1.0, 2.0, 3.0]
>>> list(a)
[1.0, 2.0, 3.0]
Вы также можете преобразовать массив в двоичную строку (то есть в нечитаемую человеком форму).
Используйте для этого метод tostring. Метод fromstring работает в обратном преобразовании.
Эти операции иногда полезны для хранения больших объемов данных в файлах, которые можно будет прочитать в будущем.
>>> a = array([1, 2, 3], float)
>>> s = a.tostring()
>>> s
'\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x08@'
>>> np.fromstring(s)
array([ 1., 2., 3.])
Заполнение массива одинаковым значением.
>>> a = array([1, 2, 3], float)
>>> a
array([ 1., 2., 3.])
>>> a.fill(0)
>>> a
array([ 0., 0., 0.])
Транспонирование массивов также возможно, создавая новый массив: >>> a = np.array(range(6), float).
reshape((2, 3))
>>> a
array([[ 0., 1., 2.],
[ 3., 4., 5.]])
>>> a.transpose()
array([[ 0., 3.],
[ 1., 4.],
[ 2., 5.]])
Многомерный массив можно преобразовать в одномерный с помощью метода Flatten: >>> a = np.array([[1, 2, 3], [4, 5, 6]], float)
>>> a
array([[ 1., 2., 3.],
[ 4., 5., 6.]])
>>> a.flatten()
array([ 1., 2., 3., 4., 5., 6.])
Два или более массива можно объединить с помощью метода concatenate: >>> a = np.array([1,2], float)
>>> b = np.array([3,4,5,6], float)
>>> c = np.array([7,8,9], float)
>>> np.concatenate((a, b, c))
array([1., 2., 3., 4., 5., 6., 7., 8., 9.])
Если массив не одномерный, можно указать ось, по которой будет происходить соединение.
По умолчанию (без указания значения оси) соединение будет происходить по первому измерению: >>> a = np.array([[1, 2], [3, 4]], float)
>>> b = np.array([[5, 6], [7,8]], float)
>>> np.concatenate((a,b))
array([[ 1., 2.],
[ 3., 4.],
[ 5., 6.],
[ 7., 8.]])
>>> np.concatenate((a,b), axis=0)
array([[ 1., 2.],
[ 3., 4.],
[ 5., 6.],
[ 7., 8.]])
>>>
np.concatenate((a,b), axis=1)
array([[ 1., 2., 5., 6.],
[ 3., 4., 7., 8.]])
Наконец, размер массива можно увеличить, используя константу newaxis в квадратных скобках: >>> a = np.array([1, 2, 3], float)
>>> a
array([1., 2., 3.])
>>> a[:,np.newaxis]
array([[ 1.],
[ 2.],
[ 3.]])
>>> a[:,np.newaxis].
shape (3,1) >>> b[np.newaxis,:] array([[ 1., 2., 3.]]) >>> b[np.newaxis,:].
shape
(1,3)
Обратите внимание, что каждый массив здесь двумерный; созданный с использованием newaxis, имеет размерность один.
Метод newaxis подходит для удобного создания массивов правильной размерности в векторной и матричной математике.
На этом закончилась первая часть перевода.
Спасибо за внимание.
Теги: #перевод с английского #python3 #Numpy #Массивы #python
-
3D-Принтер От Xiaomi — Первое Знакомство
19 Oct, 24 -
Почему Выгодно Писать Приложения Для N900?
19 Oct, 24 -
Asustek Выпустит Материнские Платы Для Skype
19 Oct, 24