@Drovosek01

Зачем нужны NumPy массивы, если в Python есть свои списки?

Собственно вопрос в заголовке.
Непонятно, зачем при разработке NumPy сделали отдельный вид массивов, в Python ведь есть списки, которые точно так же хранят информацию.
  • Вопрос задан
  • 2273 просмотра
Решения вопроса 1
longclaps
@longclaps
Тут уместна такая аналогия: вот дерево яблоня (ты ведь смыслишь в деревьях?), к нему привили черенок дерева груша.
NumPy массивы - это не родные, но отлично привившиеся к питону обёртки над С-массивами, используемыми внутри BLAS-ядра библиотеки NumPy.
Они, эти массивы, содержат примитивные типы данных языка С - int, double и.т.д.
Питоновский лист - это массив питоновских объектов. Хоть некоторые из них и называются так же, как примитивные типы данных C (например int), они - другие. У них даже размер в памяти разный - 4 байта для C-int и от 24 байт (а для чисел свыше 2**30 - еще больше) для python-int (ссылка).
Различия этим не исчерпываются, но и этого достаточно )

ps обрати внимание на ответ Тимур Барбашов - он врёт, как сивый мерин. Реализация типа list лежит в файле с выразительным именем arraymodule.c.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Массивы Numpy жрут меньше памяти и операции с ними быстрее.
Ответ написан
Комментировать
KevlarBeaver
@KevlarBeaver
Разработчик
Списки по своему устройству очень сильно отличаются от массивов. Учитывая, что вы дошли до NumPy, вы должны это хоть примерно представлять. Ну а NumPy предназначен для быстрой обработки данных, потому списки там ну никак не катят.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы