🧑💻 Итак, сегодня поговорим о делении в Python. На самом деле с делением в Python не все так просто, сейчас я вам это докажу:
🔗 Ниже дан пример. Для начала, попробуйте ответить у себя в голове⚙️
⚙️ Итак, в первом ответ -2. Сейчас объясню почему. Нам нужно найти ближайший множитель и уже через него найти остаток от деления, а с помощью этого равенства ❗️a=(a//b)×b+(a%b)❗️ мы проверим наши вычисления
0️⃣ Рассмотрим подробно:
🔗 Найдем целую часть 10 / −3 и получим -3.333... ➡️ Python округляет вниз, поэтому 10 // −3 = −4 ➡️ теперь умножим нашу целую часть -4 на делитель -3 и получаем 12 ➡️ остается найти остаток, а это делается вот так 10 − 12 = −2 (Остаток рассчитывается как разница между делимым (10) и произведением целой части на делитель (у нас это 12) ) ➡️
➡️ Остаток -2 найден ✅
🔗 Ниже дан пример. Для начала, попробуйте ответить у себя в голове⚙️
"Остаток от деления работает так, чтобы знак результата совпадал со знаком делителя"
1️⃣ print(10 % -3)
⚙️ Итак, в первом ответ -2. Сейчас объясню почему. Нам нужно найти ближайший множитель и уже через него найти остаток от деления, а с помощью этого равенства ❗️a=(a//b)×b+(a%b)❗️ мы проверим наши вычисления
0️⃣ Рассмотрим подробно:
"Ближайший множитель делителя берется так, чтобы частное
(a//b) округлялось вниз до меньшего целого числа"
🔗 Найдем целую часть 10 / −3 и получим -3.333... ➡️ Python округляет вниз, поэтому 10 // −3 = −4 ➡️ теперь умножим нашу целую часть -4 на делитель -3 и получаем 12 ➡️ остается найти остаток, а это делается вот так 10 − 12 = −2 (Остаток рассчитывается как разница между делимым (10) и произведением целой части на делитель (у нас это 12) ) ➡️
➡️ Остаток -2 найден ✅
7❤🔥3❤1🤓1👨💻1
🧑💻Продолжаем обучаться ML...
0️⃣🔗 В NumPy-массивы можно передавать не только целые числа, но и дробные:
П Р О Д О Л Ж Е Н И Е
0️⃣🔗 В NumPy-массивы можно передавать не только целые числа, но и дробные:
import numpy as np
b = np.array([1.7, 2.3, 5.7])
print(b)
#[1.7 2.3 5.7]
П Р О Д О Л Ж Е Н И Е
3❤🔥2👍2🤯1👨💻1
🧑💻 Доброй вам ночи гайс! Продолжаем тему деления в Python, это куда интереснее, чем вы думаете...
Мы прекрасно знаем, что в нашем любимом питончике есть три типа чисел. Int — целые положительные и отрицательные числа и ноль.
🔗 По умолчанию Python распознаёт все числа в десятичной системе, но ещё умеет работать в двоичной, восьмеричной и шестнадцатеричной.
🔗 Нам всего лишь надо поставить — 0b для двоичной системы, 0o для восьмеричной и 0x для шестнадцатеричной.
⚙️ Кстати, вот это интересная штука, мы можем разделять разряды числа нижним подчёркиванием:
Мы прекрасно знаем, что в нашем любимом питончике есть три типа чисел. Int — целые положительные и отрицательные числа и ноль.
🔗 По умолчанию Python распознаёт все числа в десятичной системе, но ещё умеет работать в двоичной, восьмеричной и шестнадцатеричной.
🔗 Нам всего лишь надо поставить — 0b для двоичной системы, 0o для восьмеричной и 0x для шестнадцатеричной.
b = 0b11011000 # бинарный (двоичный) формат
o = 0o12 # восьмеричный
h = 0x12 # шестнадцатеричный
⚙️ Кстати, вот это интересная штука, мы можем разделять разряды числа нижним подчёркиванием:
x = 2_684_777_020
print(x)
#2684777020
Тип данных float представляет вещественные числа, которые могут быть как положительными, так и отрицательными, с плавающей точкой. Такие числа можно записывать в стандартном формате или использовать научную нотацию с символами e или E.
5❤🔥3❤1🥰1
⚙️ Какой будет ответ?
def make_incrementer(n):
return lambda x: x + n
increment_by_2 = make_incrementer(2)
increment_by_5 = make_incrementer(5)
n = 10
print(increment_by_2(n) + increment_by_5(n))
❤3❤🔥1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🧑💻 Библиотеки Python под различные задачи
1🤯4❤🔥1
🧑💻 Гайс, помните пост?
🔗 Почему я решил разобрать этот код? Да потому что 44% бездарей (моих любимых подписчиков) не смогли ответить. Если что, я шучу насчет бездарей, я специально вам сложные даю, чтобы голову свою напрягали.
0️⃣ Функция принимает один аргумент n, а дальше идет 🟰
1️⃣ Так, теперь
🔗 Каждая из них хранит своё значение n:
🟰 increment_by_2 содержит n = 2.
🟰 increment_by_5 содержит n = 5.
▫️Если вызвать increment_by_2(10), то результат будет 10 + 2 = 12.
▫️Если вызвать increment_by_5(10), то результат будет 10 + 5 = 15.
2️⃣ Переменной n присваивается значение 10
3️⃣ Переменной n присваивается значение 10, кароч тут происходят два вызова:
🔗 Первый вызов:
⚙️ Значение n из глобальной области передаётся в функцию как x = 10.
✅ Результат: 10 + 2 = 12.
🔗 Второй вызов: 🟰
⚙️ Значение n снова передаётся в функцию как x = 10.
✅ Результат: 10 + 5 = 15.
🧑💻 По итогу, код выведет 27
def make_incrementer(n):
return lambda x: x + n
increment_by_2 = make_incrementer(2)
increment_by_5 = make_incrementer(5)
n = 10
print(increment_by_2(n) + increment_by_5(n))
🔗 Почему я решил разобрать этот код? Да потому что 44% бездарей (моих любимых подписчиков) не смогли ответить. Если что, я шучу насчет бездарей, я специально вам сложные даю, чтобы голову свою напрягали.
0️⃣ Функция принимает один аргумент n, а дальше идет 🟰
lambda🟰 функция. Че это такое? Кароч, lambda — ключевое слово, указывающее, что создаётся функция. 🔗 А сама функция создаёт функцию, которая принимает параметр x и возвращает x + 2 ( результат функции зависит как от x, так и от значения n, переданного в функцию 🟰make_incrementer🟰).⚙️ Лямбда-функции в Python являются анонимными. Это означает, что функция безымянна. Как известно, ключевое слов def используется в Python для определения обычной функции. В свою очередь, ключевое слово lambda используется для определения анонимной функции.
def make_incrementer(n):
return lambda x: x + n
1️⃣ Так, теперь
🟰increment_by_2🟰 и 🟰increment_by_5🟰 — это теперь функции, которые созданы через вызов 🟰make_incrementer🟰increment_by_2 = make_incrementer(2)
increment_by_5 = make_incrementer(5)
🔗 Каждая из них хранит своё значение n:
🟰 increment_by_2 содержит n = 2.
🟰 increment_by_5 содержит n = 5.
▫️Если вызвать increment_by_2(10), то результат будет 10 + 2 = 12.
▫️Если вызвать increment_by_5(10), то результат будет 10 + 5 = 15.
2️⃣ Переменной n присваивается значение 10
n = 10
print(increment_by_2(n) + increment_by_5(n))
3️⃣ Переменной n присваивается значение 10, кароч тут происходят два вызова:
🔗 Первый вызов:
🟰increment_by_2(n):🟰⚙️ Значение n из глобальной области передаётся в функцию как x = 10.
✅ Результат: 10 + 2 = 12.
🔗 Второй вызов: 🟰
increment_by_5(n):🟰⚙️ Значение n снова передаётся в функцию как x = 10.
✅ Результат: 10 + 5 = 15.
🧑💻 По итогу, код выведет 27
11❤🔥2👍1🤓1
🧑💻 Гайс, медленно, но верно мы продвигаемся. Хоть посты выходят сейчас реже, я стараюсь писать их качественнее. Работа ведется над двумя каналами, а также над их продвижением, надеюсь, вы меня понимаете 🫶
⚙️ Нам понадобятся две библиотеки:
1️⃣ Библиотека json
Проект у нас — менеджер паролей. В течение всей темы рассмотрим саму концепцию программы, как она работает и т.д
⚙️ Нам понадобятся две библиотеки:
import json
import os
1️⃣ Библиотека json
Библиотека json в Python используется для работы с данными в формате JSON (JavaScript Object Notation). JSON — это стандартный формат обмена данными, который легко читается людьми и машинами. В Python эта библиотека позволяет сериализовать объекты Python в формат JSON и наоборот, что полезно для обмена данными с другими программами, сохранения настроек, обмена данными через веб-сервисы и т. д.
Когда использовать: Если нужно сохранить данные в файл, чтобы потом их прочитать или передать кому-то.
6❤6❤🔥1👍1
🧑💻 Йоу воссап, друзья, потихонечку помаленечку мы продвигаемся. Но нам нельзя никак останавливаться, поэтому предлагаю заняться чем то серьезным, а именно — векторы, матрицы и вся эта сложная штука...
🔗 Итак, начнем конечно же с векторов, базу знать нам необходимо...
▫️Че такое этот ваш вектор? Это объект (математический), который имеет длину (модуль, мера его размера) и направление (ориентация в пространстве)
v = [u₁, u₂ u₃] — вот пример вектора в трехмерном пространстве
Как найти его длину (модуль) ?
|v| = √u²₁, u²₂ u²₃ + ... + u²ₓ
Например:
Если v = [3, 4], то v = √9 + 16 = 5 (я надеюсь, вы поняли че мы сделали, просто в формулу вставьте числа)
🔗 Касаемо Евклидовой нормы, мы рассмотрим это дальше, пока не надо париться...
П Р О Д О Л Ж Е Н И Е
🔗 Итак, начнем конечно же с векторов, базу знать нам необходимо...
▫️Че такое этот ваш вектор? Это объект (математический), который имеет длину (модуль, мера его размера) и направление (ориентация в пространстве)
v = [u₁, u₂ u₃] — вот пример вектора в трехмерном пространстве
Как найти его длину (модуль) ?
|v| = √u²₁, u²₂ u²₃ + ... + u²ₓ
Например:
Если v = [3, 4], то v = √9 + 16 = 5 (я надеюсь, вы поняли че мы сделали, просто в формулу вставьте числа)
Для векторов функция numpy.linalg.norm вычисляет длину (или величину) вектора. По умолчанию она использует Евклидову норму (L2-норма):
import numpy as np
vp = np.array([3, 4])
length = np.linalg.norm(vp)
print(length)
# 5.0
🔗 Касаемо Евклидовой нормы, мы рассмотрим это дальше, пока не надо париться...
П Р О Д О Л Ж Е Н И Е
❤🔥1👍1🤓1
🧑💻 Гайс здарова 🤚
🔗 Можно как вариант разобрать задания на 🟰Stepik🟰, там как раз цикл 🟰
Задание перед вами, надеюсь, вам такое оформление нравится, ведь я очень стараюсь 🙏
Теперь сам цикл 🟰
Выводим текущее значение:
И снова запрашиваем ввод у пользователя (Тип переменная d = 'какое то значение', затем он обновляется )
🔗 Ну и сам код:
🔗 Можно как вариант разобрать задания на 🟰Stepik🟰, там как раз цикл 🟰
while🟰 начался)Задание перед вами, надеюсь, вам такое оформление нравится, ведь я очень стараюсь 🙏
'на вход подается последовательность слова...' — вот это все запоминаем и пишем:
d = input()
Теперь сам цикл 🟰
while🟰:while d != 'КОНЕЦ':
цикл продолжается, пока переменная dead не равна строке "КОНЕЦ"
Выводим текущее значение:
print(d)
И снова запрашиваем ввод у пользователя (Тип переменная d = 'какое то значение', затем он обновляется )
d = input()
🔗 Ну и сам код:
d = input()
while d != 'КОНЕЦ':
print(d)
d = input()
❤🔥3👍1
#1
a = [1, 2, 3]
b = a
c = a[:]
b[0] = 99
c[1] = 88
a.append(4)
print(a)
print(b)
print(c)
❤🔥2🥰1🤯1
#1 (Представляйте, что в столбик ответы, тг не позволяет прост )
Anonymous Quiz
23%
[99, 2, 3, 4] [99, 2, 3, 4] [1, 88, 3]
15%
[99, 2, 3, 4] [1, 2, 3, 4] [1, 88, 3]
31%
[99, 2, 3] [99, 2, 3] [1, 88, 3]
31%
[1, 2, 3, 4] [1, 2, 3, 4] [1, 88, 3]
❤🔥2👍1🤯1
Media is too big
VIEW IN TELEGRAM
🧑💻1️⃣ Скалярное произведение векторов
🔗 a⋅b=∣a∣∣b∣cos(θ)
🔗 ∣a∣ и ∣b∣ — длины векторов, θ — угол между ними
Теперь напишем пример на Python:
П Р О Д О Л Ж Е Н И Е
Скалярное произведение двух векторов a и b — это сумма произведений их соответствующих компонентов
🔗 a⋅b=∣a∣∣b∣cos(θ)
🔗 ∣a∣ и ∣b∣ — длины векторов, θ — угол между ними
Если угол равен 90°, то скалярное произведение равно 0, так как cos(90°) = 0
Теперь напишем пример на Python:
П Р О Д О Л Ж Е Н И Е
❤🔥3🥰1
Forwarded from CodeLab ML
Media is too big
VIEW IN TELEGRAM
🧑💻1️⃣ Скалярное произведение векторов
🔗 a⋅b=∣a∣∣b∣cos(θ)
🔗 ∣a∣ и ∣b∣ — длины векторов, θ — угол между ними
Теперь напишем пример на Python:
Скалярное произведение двух векторов a и b — это сумма произведений их соответствующих компонентов
🔗 a⋅b=∣a∣∣b∣cos(θ)
🔗 ∣a∣ и ∣b∣ — длины векторов, θ — угол между ними
Если угол равен 90°, то скалярное произведение равно 0, так как cos(90°) = 0
Теперь напишем пример на Python:
import numpy as np
a = ([1, 2, 3])
b = ([4, 5, 6])
dot_product = np.dot(a, b)
print(dot_product)
Dot Product — это операция между двумя векторами, которая возвращает одно число (скаляр). Она вычисляется как сумма произведений соответствующих компонент векторов.
❤🔥3👍1
Гайс, переходим, сейчас там наибольшая активность 🔽🔽🔽https://t.me/CodeLabML
Telegram
CodeLab ML
https://t.me/CodeLabChat — наш чат для общения
❤🔥2👍1🤯1
Forwarded from CodeLab ML
Строим график синусоиды
0️⃣ Импортируем две базовые библиотеки:
1️⃣ Создание фигуры (с помощью Figure)
🔗 Итак, 🟰
первая цифра (5) — это ширина фигуры
вторая цифра (4) — это высота фигуры
2️⃣ Добавляем оси
▫️Этот метод добавляет оси на заданную фигур.
▫️[0.1, 0.1, 0.8, 0.8] — Список, который задаёт положение и размер области для осей внутри фигуры в виде четырёх чисел и вот как это выглядит:
0️⃣ Импортируем две базовые библиотеки:
import matplotlib.pyplot as plt
import numpy as np
1️⃣ Создание фигуры (с помощью Figure)
fig = plt.figure(figsize=(5, 4))
🔗 Итак, 🟰
plt.figure🟰 создаёт новый объект, на которой будут отображаться графики. А что касаемо параметров (5, 4) ? Параметры отвечают за размер фигуры: первая цифра (5) — это ширина фигуры
вторая цифра (4) — это высота фигуры
Итак, создаётся фигура размером 5x4 дюйма
2️⃣ Добавляем оси
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
▫️Этот метод добавляет оси на заданную фигур.
▫️[0.1, 0.1, 0.8, 0.8] — Список, который задаёт положение и размер области для осей внутри фигуры в виде четырёх чисел и вот как это выглядит:
0.1 — отступ от левой границы фигуры.
0.1 — отступ от нижней границы фигуры.
0.8 — ширина осей относительно ширины фигуры.
0.8 — высота осей относительно высоты фигуры.
❤2❤🔥1👍1
def add_to_list(val, my_list=None):
if my_list is None:
my_list = []
my_list.append(val)
return my_list
print(add_to_list(1))
print(add_to_list(2))
❤🔥1👍1🤓1
Что выведет код сверху?
Anonymous Quiz
70%
[1], [2]
0%
[1], [1, 2]
20%
[1, 2], [1, 2]
10%
Ошибка выполнения
❤🔥2👍2
🧑💻 Так, продолжаем машинку, завтра мб выложу тесты)
Помните мы написали формулу цена=100+50×количество комнат+небольшое расхождение.
⭕️ Когда мы говорим, что наклон
прямой равен 50, это означает, что каждый раз, добавляя в дом одну комнату, мы вычисляем, что цена дома вырастет на 50 долларов. Когда говорим, что y-пересечение прямой равно 100, это означает, что стоимость гипотетического
дома с нулевым количеством комнат базовая — 100 долларов.
Помните мы написали формулу цена=100+50×количество комнат+небольшое расхождение.
⭕️ Когда мы говорим, что наклон
прямой равен 50, это означает, что каждый раз, добавляя в дом одну комнату, мы вычисляем, что цена дома вырастет на 50 долларов. Когда говорим, что y-пересечение прямой равно 100, это означает, что стоимость гипотетического
дома с нулевым количеством комнат базовая — 100 долларов.
❤🔥2
🟰Алгоритм линейной регрессии🟰
Немного теории, которая нам пригодится:
🔗 Входные данные — набор точек на плоскости.
🔗 Результат — прямая, проходящая близко к точкам
🔗 Процедура — выбираем случайную прямую → выбираем случайную точку данных → перемещаем прямую немного ближе к ней ( повторяем это )
🔗 Возврат — полученная прямая
p — цена дома в наборе данных;
Y — прогнозируемая цена дома;
r — количество комнат;
m — цена за комнату;
b — базовая цена за дом.
Теперь формула:
🟰Y = mr + b🟰 — прогнозируемая цена = цена за комнату × количество комнат + базовая цена дома
⭕️ Допустим, цена за комнату — 50000, у нас 3 комнаты в доме, а базовая цена 200000, как мог бы выглядеть код:
Немного теории, которая нам пригодится:
🔗 Входные данные — набор точек на плоскости.
🔗 Результат — прямая, проходящая близко к точкам
🔗 Процедура — выбираем случайную прямую → выбираем случайную точку данных → перемещаем прямую немного ближе к ней ( повторяем это )
🔗 Возврат — полученная прямая
p — цена дома в наборе данных;
Y — прогнозируемая цена дома;
r — количество комнат;
m — цена за комнату;
b — базовая цена за дом.
Теперь формула:
🟰Y = mr + b🟰 — прогнозируемая цена = цена за комнату × количество комнат + базовая цена дома
⭕️ Допустим, цена за комнату — 50000, у нас 3 комнаты в доме, а базовая цена 200000, как мог бы выглядеть код:
def predict_price(m, r, b):
return m * r + b
price_per_room = 50000
number_of_rooms = 3
base_price = 200000
predicted_price = predict_price(price_per_room, number_of_rooms, base_price)
print(f"Прогнозируемая цена дома: ${predicted_price}")
❤🔥2🤯1