).
Для того чтобы начать работу с NumPy, вы должны понять устройство основной структуры данных, многомерного массива ndarray (от N-dimensional array — «N-мерный массив») или просто array. В отличие от списков и кортежей в Python, все элементы должны иметь одинаковый тип.
NumPy называет количество измерений массива его рангом. Одномерный массив похож на ряд значений, двухмерный — на таблицу с рядами и колонками, а трехмерный — на кубик Рубика. Длина измерений может не быть одинаковой.
array в NumPy и array в Python — это не одно и то же. В дальнейшем в этом приложении я буду работать только с массивами NumPy.
Но зачем нам нужны массивы?
• Научные данные зачастую представляют собой большие последовательности.
• Научные подсчеты для таких данных часто выполняются с использованием матричной математики, регрессии, симуляции и других приемов, которые обрабатывают множество фрагментов данных одновременно.
• NumPy обрабатывает массивы гораздо быстрее, чем стандартные списки или кортежи Python.
Существует множество способов создать массив NumPy.
Создание массива с помощью функции array()
Вы можете создать массив из обычного списка или кортежа:
>>>> b = np.array([2, 4, 6, 8])
>>>> b
>array([2, 4, 6, 8])
Атрибут ndim возвращает ранг массива:
>>>> b.ndim
>1
Общее число значений можно получить с помощью атрибута size:
>>>> b.size
>4
Количество значений каждого ранга возвращает атрибут shape:
>>>> b.shape
>(4,)
Создание массива с помощью функции arange()
Метод arange() похож на стандартный метод range(). Если вы вызовете метод arange(), передав ему один целочисленный аргумент num, он вернет ndarray от 0 до num-1:
>>>> import numpy as np
>>>> a = np.arange(10)
>>>> a
>array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>>> a.ndim
>1
>>>> a.shape
>(10,)
>>>> a.size
>10
С помощью двух значений он создаст массив от первого элемента до последнего минус один:
>>>> a = np.arange(7, 11)
>>>> a
>array([7,··8,··9, 10])
Вы также можете передать как третий параметр размер шага, который будет использован вместо единицы:
>>>> a = np.arange(7, 11, 2)
>>>> a
>array([7, 9])
До сих пор мы показывали примеры лишь с целыми числами, но метод arrange() работает и с числами с плавающей точкой:
>>>> f = np.arange(2.0, 9.8, 0.3)
>>>> f
>array([2.,··2.3,··2.6,··2.9,··3.2,··3.5,··3.8,··4.1,··4.4,··4.7,··5.,
>········5.3,··5.6,··5.9,··6.2,··6.5,··6.8,··7.1,··7.4,··7.7,··8.,··8.3,
>········8.6,··8.9,··9.2,··9.5,··9.8])
И последний прием: аргумент dtype указывает функции arrange(), какого типа значения следует создать:
>>>> g = np.arange(10, 4, -1.5, dtype=np.float)
>>>> g
>array([10.,···8.5,···7.,···5.5])