Как стать автором
Обновить
545.36

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга

Можно ли придумать что-то более классическое, чем решение задачи на удаление дубликатов из отсортированного массива? Не уверены, поэтому в новом выпуске «Алгоритмической качалки» взяли на разбор задачу №26 с Leetcode (Remove Duplicates from Sorted Array).

Предлагайте свои решения в комментариях, а также делитесь задачами, которые можно было бы разобрать в рамках «АК».

Рейтинг0
Комментарии3

А мы продолжаем тихой сапой захватывать ветку с постами в хабе Python и публикуем свежий выпуск «Алгоритмической качалки». В этот раз Альбина разбирала задачу под номером 58, которая звучит, как Length of Last Word. Кажется, что найти длину последнего слова в предложении довольно легко, но на самом деле пришлось приложить немного усилий, чтобы решить этот алгоритм.

Кстати, вы можете предлагать свои варианты решения в комментариях, а также предлагать задачи, которые Альбина возьмет на разбор в следующих выпусках.

Рейтинг0
Комментарии5

Доступен релиз Python-библиотеки для научных вычислений NumPy 1.25, ориентированной на работу с многомерными массивами и матрицами, а также предоставляющей большую коллекцию функций с реализацией различных алгоритмов, связанных с использованием матриц. NumPy является одной из наиболее востребованных библиотек, применяемых для научных расчётов. Код проекта написан на языке Python с применением оптимизаций на языке C и распространяется под лицензией BSD.

В новой версии:

  • Продолжена работа по улучшению обработки и продвижению новой инфраструктуры для класса dtype.

  • Увеличена скорость выполнения.

  • Началась подготовка к формированию выпуска NumPy 2.0.0, в котором будет прекращена поддержка некоторых устаревших возможностей. После достижения Python 3.12 стадии кандидата в релизы будет сформирован выпуск NumPy 1.26.0, после которого выйдет NumPy 2.0.0.

  • Обеспечено формирование wheel-пакетов на базе стандартной C-библиотеки musl.

  • Добавлена поддержка компилятора Fujitsu C/C++.

  • В функции einsum добавлена поддержка массивов объектов.

  • Добавлена поддержка умножения матриц по месту (без создания нового набора данных) с использованием оператора "@=".

Источник: OpenNET.

Всего голосов 6: ↑6 и ↓0+6
Комментарии0

В этот раз мы решили пойти по базовым задачам с Leetcode, поэтому взяли на разбор задачку Two sum, которая идет под номером 1 и имеет более 19 тысяч решений. Альбина разобрала на видео два варианта решения алгоритма — один, который первым приходит в голову, и второй, который более оптимален по скорости.

Всего голосов 3: ↑3 и ↓0+3
Комментарии2

Сейчас разрабатываем большую платформу для планирования и прогнозирования спроса и продаж в ритейле. Под капотом платформы более 10 микросервисов: от серверов очередей, которые координируют взаимодействие различных частей системы, до непосредственно ML-движков, которые на основе больших входящих датасетов с историей продаж строят прогнозы на будущее. 


По мотивам одной из задач проекта опубликовали хорошую статью со сравнением скорости работы двух гигантов аналитики данных в Python: Pandas и Polars. Там подробно рассмотрели вопрос быстродействия этих двух решений в части работы с файлами больших объемов.

Один из интересных графиков:

Полная версия статьи — Битва медведей: Pandas против Polars

Всего голосов 10: ↑9 и ↓1+8
Комментарии0

Чтобы проходить собеседования на «Ура» нужно уметь решать алгоритмы. А научиться решать их можно на сайте Leetcode, например. Ведущая Python-разработчица «Технократии» Альбина Альмухаметова показывает, как решить задачу Merge Two Sorted Lists, которую она дает на собеседованиях. Приятного просмотра!

Всего голосов 6: ↑6 и ↓0+6
Комментарии5

Может плохо искал, но ничего про Anvil на Хабре не нашёл, а ведь это

  • типа Delphi, но на Python и в облаке

  • облако можно и своё

  • бесплатно мало, но достаточно интересно, навсегда и внешне безлимитно

  • платно много, без сомнений в способности содержать бесплатное

  • можно хостить статический сайт

  • только стандартная библиотека, но можно общаться с локальным кодом на Python в обе стороны

  • может бесплатно получать e-mail

  • встроенная регистрация пользователей

  • интеграция с Google, Facebook, Tableau, Stripe, платно Microsoft и SAML

Вроде как вот он - способ изучить Python легко и интересно.

Теги:
Рейтинг0
Комментарии0

В очередной раз столкнулся с "новички не умеют пользоваться global", поэтому для них написал 8 примеров для проверки понимания global, ну и mutable/immutable заодно.

# ok
foo = 1
def bar():
    print('in bar', foo)

bar()
print('out bar', foo)


# ok
foo = 1
def bar():
    foo = 2
    print('in bar', foo)

bar()
print('out bar', foo)


# UnboundLocalError
foo = 1
def bar():
    print('1, in bar', foo)
    foo = 2
    print('2, in bar', foo)

bar()
print('out bar', foo)


# ok
foo = 1
def bar():
    global foo
    print('1, in bar', foo)
    foo = 2
    print('in bar', foo)

bar()
print('out bar', foo)


# UnboundLocalError
foo = [1]
def bar():
    print('1, in bar', foo)
    foo = [2]
    print('2, in bar', foo)

bar()
print('out bar', foo)


# ok
foo = [1]
def bar():
    global foo
    print('1, in bar', foo)
    foo = [2]
    print('2, in bar', foo)

bar()
print('out bar', foo)


# ok ;)
foo = [1]
def bar():
    print('1, in bar', foo)
    foo.append(2)
    print('2, in bar', foo)

bar()
print('out bar', foo)


# ok ;)
foo = [1]
def bar():
    print('1, in bar', foo)
    foo[:] = [2]
    print('2, in bar', foo)

bar()
print('out bar', foo)

Всего голосов 9: ↑9 и ↓0+9
Комментарии3

Всем привет!

В этом туториале писал о том, как собрать свою обëртку для ChatGPT, используя Streamlit и API OpenAI.

Рассказываю, что случилось нового ?
Добавлен функционал для подсчёта токенов, стоимости сообщения и беседы. Реализовано с помощью функции:

import streamlit as st


def calc_cost(usage: dict) -> None:
    total_tokens = usage.get("total_tokens")
    prompt_tokens = usage.get("prompt_tokens")
    completion_tokens = usage.get("completion_tokens")
    st.session_state.total_tokens.append(total_tokens)
    # pricing logic: https://openai.com/pricing#language-models
    if st.session_state.model == "gpt-3.5-turbo":
        cost = total_tokens * 0.002 / 1000
    else:
        cost = (prompt_tokens * 0.03 + completion_tokens * 0.06) / 1000
    st.session_state.costs.append(cost)

Проверить работу нового функционала можно на сайте AI Talks. Репозиторий с кодом ожидающий ваших issue, pr и звёзд ⭐
Успехов! ?

Всего голосов 14: ↑14 и ↓0+14
Комментарии0

Интересные встроенные библиотеки питона:

Tempfile

Создаёт временный файл как в linux папка tmp:

import tempfile
with tempfile.NamedTemporaryFile() as tmp:
    print(tmp.name)
    tmp.write(...)

IO

Чтобы не использовать временные файлы, можно использовать временный буфер сразу в программе:

from io import BytesIO

imagefile = BytesIO()
animage.save(imagefile, format='PNG')
imagedata = imagefile.getvalue()

Struct

Позволяет создавать бинарные структуры и парсить их. Может ускорить передачу между клиентом и сервером:

>> from struct import *
>> pack(">bhl", 1, 2, 3)
b'\x01\x00\x02\x00\x00\x00\x03'
>> unpack('>bhl', b'\x01\x00\x02\x00\x00\x00\x03')
(1, 2, 3)
>> calcsize('>bhl')
7

CMD

С помощью этой библиотеки можно создать полноценный tui:

Welcome to the turtle shell.   Type help or ? to list commands.

(turtle) ?

Documented commands (type help <topic>):
========================================
bye     color    goto     home  playback  record  right
circle  forward  heading  left  position  reset   undo

(turtle) help forward
Move the turtle forward by the specified distance:  FORWARD 10
(turtle) record spiral.cmd
(turtle) position
Current position is 0 0

Удивительно что такие полезные пакеты находятся в стандартной комплектации питона.

И не нужно скачивать кучу пакетов из pip.

Всего голосов 18: ↑18 и ↓0+18
Комментарии0
12 ...
8

Работа

Data Scientist
41 вакансия