Чем отличаются Pandas от NumPy + SciPy в Python? [закрыто]

195

Они оба кажутся чрезвычайно похожими, и мне любопытно, какой пакет будет более полезным для анализа финансовых данных.

piRSquared
источник

Ответы:

314

Pandas предоставляет высокоуровневые инструменты для работы с данными, построенные на основе NumPy. NumPy - довольно низкоуровневый инструмент, похожий на MATLAB. Pandas, с другой стороны, предоставляет богатые функциональные возможности временных рядов, выравнивание данных, удобную для статистики статистику, методы группового объединения, слияния и объединения, а также множество других удобств. Это стало очень популярным в последние годы в финансовых приложениях. В моей следующей книге у меня будет глава, посвященная анализу финансовых данных с использованием панд.

Уэс МакКинни
источник
217
Вы должны были упомянуть, что вы являетесь основным автором панд. :) Книга, о которой идет речь: shop.oreilly.com/product/0636920023784.do
Иктула
3
Было бы справедливо сказать, что numpy в первую очередь предоставляет эффективные массивы, тогда как pandas предоставляет эффективные словари? (В обоих случаях это ограничено согласованным типом данных, а не свободной формой.) Для меня (я сейчас только начинаю изучать это), это поражает меня как основное различие: обработка данных, связанных с метками (в 1d, иначе: dicts и 2д ака таблицы). Благодаря этому становится возможным выравнивание данных, объединение и т. Д. , Но для людей, которые не понимают, что это основное различие, даже не ясно, что они означают (например, что такое «выравнивание данных» двух пустых массивов?).
Брандин
6
может быть глупый вопрос, но что вы подразумеваете под NA-friendly statisticsупомянутым в вашем ответе?
Адиль Аббаси
6
Я думаю, он ссылается на статистику, учитывающую отсутствующие данные (NA, «Недоступно»)
user1319128 22.09.16
4
Холодная нить, но как насчет различий в производительности, например, сложной операции в numpy, но синтаксически упрощенной в пандах? Есть ли затраты на производительность, чтобы перейти на простой синтаксический путь высокого уровня?
3pitt
59

Numpy требуется пандами (и практически всеми числовыми инструментами для Python). Scipy не является обязательным требованием для панд, но указан как «необязательная зависимость». Я бы не сказал, что панды - это альтернатива Нампи и / или Сципи. Скорее, это дополнительный инструмент, который обеспечивает более упорядоченный способ работы с числовыми и табличными данными в Python. Вы можете использовать структуры данных Pandas, но свободно использовать функции Numpy и Scipy для управления ими.

BrenBarn
источник
4

Pandas предлагают отличный способ манипулирования таблицами, поскольку вы можете упростить биннинг ( бин для данных в pandas в Python ) и вычислять статистику. Еще одна вещь, которая хороша в pandas - это класс Panel, в котором вы можете объединять серии слоев с разными свойствами и комбинировать их с помощью функции groupby.

Юрий Симоес-Соуза
источник