Python/ django
58.9K subscribers
2.08K photos
61 videos
47 files
2.79K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит-каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
加入频道
💼Building a Trading Strategy with Machine Learning Models and Yahoo Finance in Python.

Создаем алгоритм для торговли с помощью моделей машинного обучения и Yahoo Finance на Python.

import yfinance as yf
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
import matplotlib.pyplot as plt

# Step 1: Data Collection
ticker = "AAPL"
start_date = "2021-01-01"
end_date = "2023-01-06"
data = yf.download(ticker, start=start_date, end=end_date, progress=False)

# Step 2: Data Preprocessing
data["Return"] = data["Close"].pct_change()
data.dropna(inplace=True)

# Step 3: Feature Engineering
data["SMA_5"] = data["Close"].rolling(window=5).mean()
data["SMA_20"] = data["Close"].rolling(window=20).mean()

# Step 4: Model Selection and Training
X = data[["SMA_5", "SMA_20"]]
y = (data["Return"] > 0).astype(int)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

pipeline = Pipeline([
('imputer', SimpleImputer(strategy='mean')),
('classifier', RandomForestClassifier(n_estimators=100, random_state=42))
])

pipeline.fit(X_train, y_train)

# Step 5: Model Evaluation
y_pred_train = pipeline.predict(X_train)
train_accuracy = accuracy_score(y_train, y_pred_train)

y_pred_test = pipeline.predict(X_test)
test_accuracy = accuracy_score(y_test, y_pred_test)

print("Train Accuracy:", train_accuracy)
print("Test Accuracy:", test_accuracy)

# Step 6: Strategy Design
data["Predicted_Return"] = pipeline.predict(X)
data["Signal"] = data["Predicted_Return"].diff()
data.loc[data["Signal"] > 0, "Position"] = 1
data.loc[data["Signal"] < 0, "Position"] = -1
data["Position"].fillna(0, inplace=True)

# Step 7: Backtesting
data["Strategy_Return"] = data["Position"] * data["Return"]
cumulative_returns = (data["Strategy_Return"] + 1).cumprod()

plt.figure(figsize=(10, 6))
plt.plot(data.index, cumulative_returns)
plt.xlabel("Date")
plt.ylabel("Cumulative Returns")
plt.title("Trading Strategy Performance")
plt.grid(True)
plt.show()


@pythonl
🔭 Daily Useful Scripts

Daily.py is a repository that provides a collection of ready-to-use Python scripts for automating common daily tasks.

Daily.py - это репозиторий, который предоставляет коллекцию готовых к запуску скриптов Python для автоматизации обычных повседневных задач.

git clone https://github.com/Chamepp/Daily.py.git

Github

@pythonl
Machine learning — обучающий для тех, кто хочет погрузится в волшебный мир Нейронауки!

Нейронные сети, машинное обучение, Data Science, изучаем базу, объясняем код, изучаем лучшие проекты, выкладываем бесплатные курсы и книги из области Машинного обучения.

Начать учиться
🖥 Create a Mock SQL DB in Python from CSV for unit testing

Создание макета SQL-базы данных в Python из CSV для модульного тестирования.

pip install pandas
pip install sqlglot
pip install sqlalchemy
from sqlalchemy import create_engine, text
import sqlglot
import pandas as pd


def execute_sql_query(sql):
query_as_sqlite = sqlglot.transpile(sql, read="postgres", write="sqlite")[0]
mocked_db = create_engine('sqlite://')
pd.read_csv('data.csv').to_sql('table_name', con=mocked_db)
with mocked_db.connect() as connection:
result = connection.execute(text(query_as_sqlite))
return result

@pythonl
🐍 10 Useful python scripts

10 интересных скриптов Python.

• Создавайте веб-бота
# pip install selenium
import time
from selenium import webdriver
from selenium.webdriver.common.keys
import Keysbot = webdriver.Chrome("chromedriver.exe")
bot.get('http://www.google.com')
search = bot.find_element_by_name('q')
search.send_keys("@codedev101")
search.send_keys(Keys.RETURN)
time.sleep(5)
bot.quit()


• Улучшение изображений на Python

# pip install pillow
from PIL import Image,ImageFilter
from PIL import ImageEnhance
im = Image.open('img.jpg')
# Choose your filter
# add Hastag at start if you don't want to any filter below
en = ImageEnhance.Color(im)
en = ImageEnhance.Contrast(im)
en = ImageEnhance.Brightness(im)
en = ImageEnhance.Sharpness(im)# result
en.enhance(1.5).show("enhanced")


• Парсинг текстов песен
# pip install lyricsgenius
import lyricsgenius
api_key = "xxxxxxxxxxxxxxxxxxxxx"
genius = lyricsgenius.Genius(api_key)
artist = genius.search_artist("Pop Smoke",
max_songs=5,sort="title")
song = artist.song("100k On a Coupe")
print(song.lyrics)


Получение данных Exif для фотографий
# Get Exif of Photo
# Method 1
# pip install pillow
import PIL.Image
import PIL.ExifTags
img = PIL.Image.open("Img.jpg")
exif_data =
{
PIL.ExifTags.TAGS[i]: j
for i, j in img._getexif().items()
if i in PIL.ExifTags.TAGS
}
print(exif_data)
# Method 2
# pip install ExifRead
import exifread
filename = open(path_name, 'rb')
tags = exifread.process_file(filename)
print(tags)


Поиск в Google
# pip install google
from googlesearch import search
query = "Medium.com"
for url in search(query):
print(url)


Преобразование: шестнадцатеричная система в RGB
# Conversion: Hex to RGB
def Hex_to_Rgb(hex):
h = hex.lstrip('#')
return tuple(int(h[i:i+2], 16) for i in (0, 2, 4))
print(Hex_to_Rgb('#c96d9d')) # (201, 109, 157)
print(Hex_to_Rgb('#fa0515')) # (250, 5, 21)


Конвертация фотографий в формат Cartonize
# pip install opencv-python
import cv2
img = cv2.imread('img.jpg')
grayimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
grayimg = cv2.medianBlur(grayimg, 5)
edges = cv2.Laplacian(grayimg , cv2.CV_8U, ksize=5)
r,mask =cv2.threshold(edges,100,255,cv2.THRESH_BINARY_INV)
img2 = cv2.bitwise_and(img, img, mask=mask)
img2 = cv2.medianBlur(img2, 5)
cv2.imwrite("cartooned.jpg", mask)


Тестирование скорости соединения с помощью Python.
# pip install pyspeedtest
# pip install speedtest
# pip install speedtest-cli
#method 1
import speedtest
speedTest = speedtest.Speedtest()
print(speedTest.get_best_server())
#Check download speed
print(speedTest.download())
#Check upload speed
print(speedTest.upload())
# Method 2
import pyspeedtest
st = pyspeedtest.SpeedTest()
st.ping()
st.download()
st.upload()


Проверка состояния сайта
# pip install requests
#method 1
import urllib.request
from urllib.request import Request, urlopenreq = Request('https://medium.com/@pythonians', headers={'User-Agent': 'Mozilla/5.0'})
webpage = urlopen(req).getcode()
print(webpage) # 200
# method 2
import requests
r = requests.get("https://medium.com/@pythonians")
print(r.status_code) # 200


Извлечение текста OCR из изображений
# pip install pytesseract
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
t=Image.open("img.png")
text = pytesseract.image_to_string(t, config='')
print(text)


@pythonl
🕸 Python Web Scraping

Этот исчерпывающий список содержит библиотеки python, связанные с веб-парсингом и обработкой данных.

Web Scraping: Frameworks
scrapy - web-scraping framework (twisted based).
pyspider - A powerful spider system.
autoscraper - A smart, automatic and lightweight web scraper
grab - web-scraping framework (pycurl/multicurl based)
ruia - Async Python 3.6+ web scraping micro-framework based on asyncio
cola - A distributed crawling framework.
frontera - A scalable frontier for web crawlers
dude - A simple framework for writing web scrapers using decorators.
ioweb - Web scraping framework based on gevent and lxml

Web Scraping : Tools
portia - Visual scraping for Scrapy.
restkit - HTTP resource kit for Python. It allows you to easily access to HTTP resource and build objects around it.
requests-html - Pythonic HTML Parsing for Humans.
ScrapydWeb - A full-featured web UI for Scrapyd cluster management, which supports Scrapy Log Analysis & Visualization, Auto Packaging, Timer Tasks, Email Notice and so on.
Starbelly - Starbelly is a user-friendly and highly configurable web crawler front end.
Gerapy - Distributed Crawler Management Framework Based on Scrapy, Scrapyd, Django and Vue.js

Web Scraping : Bypass Protection
cloudscraper - A Python module to bypass Cloudflare's anti-bot page.

GIthub

@pythonl
Building an Image Recognition API using Flask

Создание API для распознавания изображений с помощью Flask.

Шаг 1: Настройка среды проекта

1. Создайте новый каталог для вашего проекта и перейдите в него.
2. Создайте виртуальную среду (необязательно, но рекомендуется):
(Изображение 1.)
3. Установите необходимые библиотеки (изображение 2.)

Шаг 2: Создайте веб-приложение Flask
Создайте новый файл с именем app.py в каталоге проекта (изображение 3.)

Шаг 3: Запустите приложение Flask
Сохраните изменения и запустите приложение Flask (изображение 4.)

Шаг 4: Протестируйте API
Теперь ваш API запущен, и вы можете отправлять изображения на адрес /predict с помощью HTTP POST запросов.
Для тестирования API можно использовать такие инструменты, как curl или Postman.
Пример использования curl (изображение 5.)
Пример с использованием запросов Python (изображение 6.)

@pythonl
🚀 Pairing Telegram data with Python. Read and analyze chat messages

Парсим данные в Telegram на Python. Читаем и анализируем сообщения из чатов.

from xmlrpc.client import DateTime
from telethon.sync import TelegramClient

from telethon.tl.functions.messages import GetDialogsRequest
from telethon.tl.types import InputPeerEmpty
from telethon.tl.functions.messages import GetHistoryRequest
from telethon.tl.types import PeerChannel

import csv

api_id = 'api id'
api_hash = "api_hash"
phone = "phone number"

client = TelegramClient(phone, api_id, api_hash)

client.start()

chats = []
last_date = None
chunk_size = 200
groups=[]
result = client(GetDialogsRequest(
offset_date=last_date,
offset_id=0,
offset_peer=InputPeerEmpty(),
limit=chunk_size,
hash = 0
))
chats.extend(result.chats)
for chat in chats:
try:
if chat.megagroup== True:
groups.append(chat)
except:
continue
print("Выберите группу для парсинга сообщений и членов группы:")
i=0
for g in groups:
print(str(i) + "- " + g.title)
i+=1
g_index = input("Введите нужную цифру: ")
target_group=groups[int(g_index)]
print("Узнаём пользователей...")
all_participants = []
all_participants = client.get_participants(target_group)
print("Сохраняем данные в файл...")
with open("members.csv", "w", encoding="UTF-8") as f:
writer = csv.writer(f,delimiter=",",lineterminator="\n")
writer.writerow(["username", "name","group"])
for user in all_participants:
if user.username:
username= user.username
else:
username= ""
if user.first_name:
first_name= user.first_name
else:
first_name= ""
if user.last_name:
last_name= user.last_name
else:
last_name= ""
name= (first_name + ' ' + last_name).strip()
writer.writerow([username,name,target_group.title])
print("Парсинг участников группы успешно выполнен.")

offset_id = 0
limit = 100
all_messages = []
total_messages = 0
total_count_limit = 0

while True:
history = client(GetHistoryRequest(
peer=target_group,
offset_id=offset_id,
offset_date=None,
add_offset=0,
limit=limit,
max_id=0,
min_id=0,
hash=0
))
if not history.messages:
break
messages = history.messages
for message in messages:
all_messages.append(message.message)
offset_id = messages[len(messages) - 1].id
if total_count_limit != 0 and total_messages >= total_count_limit:
break

print("Сохраняем данные в файл...")
with open("chats.csv", "w", encoding="UTF-8") as f:
writer = csv.writer(f, delimiter=",", lineterminator="\n")
for message in all_messages:
writer.writerow([message])
print('Парсинг сообщений группы успешно выполнен.')


@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Подборка обучающих каналов для программистов.

🖥 Machine learning
ai_ml – крупнейши канал по ии, нейросетям и науке о данных.
datasc - дата сайнс обучение самой востребованной профессии.
@bigdatai - Big Data

@machinelearning_ru – гайды по машинному обучению
@machinelearning_interview – подготовка к собеседованию мл.
@datascienceiot – бесплатные книги ds
@ArtificialIntelligencedl – ИИ

@machinee_learning – чат о машинном обучении
@datascienceml_jobs - вакансии ds, ml
@Machinelearning_Jobs - чат с вакансиями

🖥 Python
@pythonl - крупнейший канал для Python программистов.
@pro_python_code – учим python с ментором.
@python_job_interview – подготовка к Python собеседованию.
@python_testit - проверочные тесты на python
@pythonlbooks - современные книги Python
@python_djangojobs - работа для Python программистов
@python_django_work - чат обсуждения вакансий

#️⃣ c#
C# - канал для изучения C# на практике.
@csharp_cplus - C# чат
@csharp_1001_notes - инструменты C#

🖥 C++
@cpluspluc - C++ кодинг


🖥 SQL базы данных

@sqlhub - Повышение эффективности кода с грамотным использованием бд.
@chat_sql - чат изучения бд.

👣 Golang
@Golang_google - восхитительный язык от Google, мощный и перспективный.
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@golangtests - интересные тесты и задачи GO
@golangl - чат изучающих Go
@GolangJobsit - отборные вакансии и работа GO
@golang_jobsgo - чат для ищущих работу.
@golang_books - полезные книги Golang
@golang_speak - обсуждение языка Go
@golangnewss - новости go

🖥 Linux
linux - kali linux ос для хакинга
linux chat - чат linux для обучения и помощи.
@linux_read - бесплатные книги linux

🖥 Javascript / front

@react_tg - - 40,14% разработчиков сайтов использовали React в 2022 году - это самая популярная библиотека для создания сайтов.
@javascript -канал для JS и FrontEnd разработчиков. Лучшие практики и примеры кода. Туториалы и фишки JS
@Js Tests - каверзные тесты JS
@hashdev - погружение в web разработку.
@javascriptjobjs - отборные вакансии и работа FrontEnd.
@jsspeak - чат поиска FrontEnd работы.

🖥 Java
@javatg - выучить Java с senior разработчиком на практике
@javachats - чат для ответов на вопросы по Java
@java_library - библиотека книг Java
@android_its - Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит

👷‍♂️ IT работа

https://yangx.top/addlist/_zyy_jQ_QUsyM2Vi -ит каналы по яп с вакансиями

🤡It memes
@memes_prog - ит-мемы

⚙️ Rust
@rust_code - Rust избавлен от болевых точек, которые есть во многих современных яп
@rust_chats - чат rust

📓 Книги

https://yangx.top/addlist/HwywK4fErd8wYzQy - актуальные книги по всем яп

⭐️ Нейронные сети
@vistehno - chatgpt ведет блог, решает любые задачи и отвечает на любые ваши вопросы.
@aigen - сети для генерации картинок. видео, музыки и многого другого.
@neural – погружение в нейросети.

📢 English for coders

@english_forprogrammers - Английский для программистов

🖥PHP
@phpshka - PHP академия для программистов.

🖥 Devops
Devops - канал для DevOps специалистов.

🔥 Папки для программитов

https://yangx.top/addlist/_FjtIq8qMhU0NTYy - машинное обучение, нейросети, глубокое обучение

https://yangx.top/addlist/eEPya-HF6mkxMGIy - папка для Python разработчиков

https://yangx.top/addlist/MUtJEeJSxeY2YTFi - папка для Golang разработчиков
Please open Telegram to view this post
VIEW IN TELEGRAM
🦸‍♂Python DSA шпаргалка для супергероев

List Methods
изображение 2.

Dictionary Operations
изображение 3.

Dictionary methods
изображение 4.

Set Operations
изображение 5.

String Methods
изображение 6.

@pythonl