Объект многомерных массивов ndarray
Создание массива
Арифметические операции с массивами NumPy
Основы индексирования и срезы
Логическое (Boolean) индексирование
Необычное индексирование
Транспонирование массивов и замена осей
Универсальные функции: быстрые поэлементные функции от массивов
Программирование с использованием массивов
Выражение условной логики в операциях с массивами
Математические и статистические методы
Методы для булевых массивов
Сортировка
Основные операции над множествами для массивов
Чтение и запись в/из файлы массивов
Линейная алгебра
Генерация псевдослучайных числел
Пример: Случайное блуждание
Упражнения
Матрица из нулей и единиц
Моделирование нескольких случайных блужданий за раз
Рассматривается библиотека NumPy. NumPy (сокращение от Numerical Python) предоставляет эффективный интерфейс для хранения и работы с данными. В какой-то степени массивы NumPy аналогичны спискам Python, но массивы NumPy обеспечивают гораздо более эффективное хранение и операции с данными при увеличении массивов в размере. Если NumPy установлен его можно импортировать следующей командой:
import numpy
Большинство людей в мире научного Python импортируют NumPy, используя
np
в качестве псевдонима:
import numpy as np
Как было рассказано выше IPython дает возможность быстро просмотреть содержание пакета, а также документацию по функциям.
Например, для того чтобы отобразить содержание пространства имен
numpy
, можно выполнить следующее:
In [1]: np.<TAB>
Для отображения встроенной документации NumPy можно набрать следующее:
In [2]: np?
Более детальную документацию вместе с учебниками и другими ресурсами можно найти по адресу: https://numpy.org/
Одна из причин того, почему NumPy настолько важен для численных расчетов в Python, заключается в том, что он разработан, как уже упоминалось выше, для более эффективной работы с большими массивами данных, а именно:
for
.
In [1]: import numpy as np
In [2]: my_arr = np.arange(1000000)
In [3]: my_list = list(range(1000000))
In [4]: %%time for _ in range(10): my_arr2 = my_arr*2
CPU times: user 18 ms, sys: 26.4 ms, total: 44.4 ms
Wall time: 86.1 ms
In [5]: %%time for _ in range(10): my_list2 = [x * 2 for x in my_list]
CPU times: user 544 ms, sys: 105 ms, total: 650 ms
Wall time: 655 ms