Иногда появляется необходимость производить вычисления с огромными наборами данных, представленными в виде массивов или таблиц. В Python для этого принято использовать библиотеку NumPy.
Основное назначение NumPy - то, что она предоставляет объект массива, который более эффективен и лучше подходит для математических вычислений, чем стандартный список Python.
Рассмотрим простой пример, иллюстрирующий важные различия между массивами NumPy и списками:
>>>#Списки Python
>>> х = [1, 2, э, 4]
>>>у= [5, 6, 7, 8]
>>> х * 2
(1, 2, 3, 4, 1, 2, 3, 4)
>>> х + 10
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "int") to list
>>> х + у
(1, 2, 3, 4, 5, 6, 7, 8)
>>>#Массивы Numpy
>>> import numpy as np
>>> ах= np.array([l, 2, 3, 4]
>>> ау= np.array([S, 6, 7, 8])
>>> ах * 2
array([2, 4, 6, 8))
>>> ах+ 10
array([ll, 12, 13, 14))
>>> ах + ау
array([ 6, 8, 10, 12])
>>>ах* ау
array([ 5, 12, 21, 32])
>>>
Справочник Python Как видите, основные математические операции с массивами ведут себя иначе. В частности, скалярные операции ( например, ах * 2 или ах+ 10) применяются к массиву поэлементно (в случае с обычным списком нужно было писать цикл и добавлять в цикле 1 О к каждому значению списка). Кроме того, математически операции, когда оба операнда являются массивами, применяются к каждому элементу и в результате создается новый массив. Библиотека NumPy просто огромна и можно ей посвятить отдельную книгу. Посетите сайт http://www.numpy.org для дополнительной информации.