#курс #datascience #python
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤5🔥5
Это самая популярная в мире библиотека обработки данных, но она медленная, и многие библиотеки значительно превзошли ее.
Проблема альтернатив Pandas в том, что никто не хочет изучать новый API.
Давайте посмотрим правде в глаза: люди не будут переносить свои проекты, га другие фреймворки, без особой причины.
Я уже давно работаю с FireDucks
Эта библиотека в разы быстрее Pandas, и вам не придется менять код старых проектов для перехода на нее.
Вы можете изменить *одну* строку кода и весь остальной код будет работать на FireDucks :
import fireducks.pandas as pd
Вы также можете запустить свой код *не* изменяя ни одной строки, используя хук:
python
$ python -mfireducks.imhook yourfile[.]py
FireDucks — это многопоточная библиотека с ускорением компилятора и полностью совместимым с pandas API.
Она быстрее, чем Polars. Ниже приведена ссылка на некоторые бенчмарки, сравнивающие Pandas, Polars и FireDucks.
FireDucks побеждает с отрывом.
⛓️Здесь находится репозиторий FireDucks на GitHub:
https://github.com/fireducks-dev/fireducks
⛓️Если вы хотите пощупать либу, откройте этот пример:
https://github.com/fireducks-dev/fireducks/tree/main/notebooks/nyc_demo
⛓️Если вы хотите сравнить FireDucks с Polars и Pandas, вот еще один блокнот:
https://github.com/fireducks-dev/fireducks/blob/main/notebooks/FireDucks_vs_Pandas_vs_Polars.ipynb
⛓️И наконец, бенчмарки, с которыми стоит ознакомиться:
https://fireducks-dev.github.io/docs/benchmarks/
@pythonl
#fireducks #Pandas #dataanalysis #datascience #python #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
😁25👍17🔥7❤6😱4
🚀 Neo4j без сервера: GraphForge запускает полноценный Cypher прямо внутри Python-скрипта
GraphForge занимает редкую нишу между NetworkX и серверными графовыми БД. Вы получаете встроенный графовый движок на Rust, полный openCypher и хранение проекта в обычной директории.
Что внутри:
- четыре независимых слоя на Rust: parser → IR → planning → execution;
- результаты сразу возвращаются как Apache Arrow Table;
- данные легко передаются в Pandas и Polars;
- постоянное хранение построено на Parquet;
- встроены PageRank, Louvain и гибридный текстово-векторный поиск;
- Python- и Node.js-биндинги работают поверх одного движка.
При этом GraphForge честно позиционируется как инструмент исследовательского и notebook-масштаба. Для миллиардных графов, высокой нагрузки и многопользовательского доступа по-прежнему нужна серверная БД.
Python и Node.js доступны сейчас, Swift и Kotlin находятся в планах. Лицензия — Apache 2.0.
https://github.com/CurateLabs/graphforge
#RustLang #Python #OpenSource #GraphDatabase #DataScience #KnowledgeGraph
GraphForge занимает редкую нишу между NetworkX и серверными графовыми БД. Вы получаете встроенный графовый движок на Rust, полный openCypher и хранение проекта в обычной директории.
Что внутри:
- четыре независимых слоя на Rust: parser → IR → planning → execution;
- результаты сразу возвращаются как Apache Arrow Table;
- данные легко передаются в Pandas и Polars;
- постоянное хранение построено на Parquet;
- встроены PageRank, Louvain и гибридный текстово-векторный поиск;
- Python- и Node.js-биндинги работают поверх одного движка.
from graphforge import GraphForge
graph = GraphForge("research/")
result = graph.execute("""
MATCH (a)-[:CITES]->(b)
RETURN a.title, b.title
""")
print(result.to_pandas())
При этом GraphForge честно позиционируется как инструмент исследовательского и notebook-масштаба. Для миллиардных графов, высокой нагрузки и многопользовательского доступа по-прежнему нужна серверная БД.
Python и Node.js доступны сейчас, Swift и Kotlin находятся в планах. Лицензия — Apache 2.0.
https://github.com/CurateLabs/graphforge
#RustLang #Python #OpenSource #GraphDatabase #DataScience #KnowledgeGraph
❤7👍6🔥2
XY - новая open-source библиотека визуализации от команды Reflex. Она пытается объединить удобство Matplotlib с интерактивностью браузерных графиков и производительностью Rust.
Для больших датасетов Rust-ядро XY вычисляет только то, что реально можно показать при текущем разрешении экрана. При приближении данные уточняются и появляются исходные точки.
Есть даже совместимость с привычным стилем Matplotlib:
По собственному бенчмарку разработчиков на Apple M5 Pro:
- 100 млн точек в density-режиме - ~0,081 с;
- 100 млн реальных маркеров без агрегации - ~1,34 с;
- библиотека уже использовалась для визуализации датасета OpenStreetMap примерно на 10 млрд точек.
Под капотом:
Графики интерактивные: pan, zoom, hover, selection и linked charts. Их можно использовать в Jupyter и веб-приложениях, а затем экспортировать в HTML, PNG, SVG или PDF.
Установка:
Если подход оправдает себя, XY может стать интересной альтернативой связке Matplotlib + Plotly для действительно больших датасетов.
Источник:
https://github.com/reflex-dev/xy
#Python #DataScience #Visualization #Rust
Для больших датасетов Rust-ядро XY вычисляет только то, что реально можно показать при текущем разрешении экрана. При приближении данные уточняются и появляются исходные точки.
import xy
chart = xy.line_chart(
xy.line(
[1, 2, 3, 4, 5],
[120, 180, 165, 240, 310]
)
)
chart
Есть даже совместимость с привычным стилем Matplotlib:
import xy.pyplot as plt
fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()
По собственному бенчмарку разработчиков на Apple M5 Pro:
- 100 млн точек в density-режиме - ~0,081 с;
- 100 млн реальных маркеров без агрегации - ~1,34 с;
- библиотека уже использовалась для визуализации датасета OpenStreetMap примерно на 10 млрд точек.
Под капотом:
Python API
↓
ColumnStore
↓
Rust compute
↓
binary buffers
↓
WebGL2 / Canvas
Графики интерактивные: pan, zoom, hover, selection и linked charts. Их можно использовать в Jupyter и веб-приложениях, а затем экспортировать в HTML, PNG, SVG или PDF.
Установка:
pip install xy
Если подход оправдает себя, XY может стать интересной альтернативой связке Matplotlib + Plotly для действительно больших датасетов.
Источник:
https://github.com/reflex-dev/xy
#Python #DataScience #Visualization #Rust
❤5👍3🔥3