Архив рубрики: Python

PyCharm — как активировать виртуальное окружение в терминале по-умолчанию

Для этого нужно изменить терминал по-умолчанию с Power shell на CMD.

  1. File -> Settings -> Tools -> Terminal
  2. Измените значение Shell Path на C:Windowssystem32cmd.exe
  3. Включите чекбокс Activate virtualenv
  4. Нажмите apply и запустите терминал заново

Сообщение PyCharm — как активировать виртуальное окружение в терминале по-умолчанию появились сначала на Веб-студия Юсота.


Source: usota.ru python

Как настроить VPS для запуска скриптов Python

В статье рассмотрим пошаговую настройку сервера на примере VPS на Beget. Если сервера у вас ещё нет, посмотрите раздел регистрация на хостинге и аренда сервера.

Настройка сервера

Проверяем, что сервер запущен и доступы пришли на почту.

Панель управления в личном кабинете

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

Шаг 1 — Вход с привилегиями root

Чтобы войти на сервер, вам нужно знать публичный IP-адрес вашего сервера. Также вам потребуется пароль или, если вы установили ключ SSH для аутентификации, приватный ключ для учетной записи root user. Если вы еще не выполнили вход на сервер, вы можете воспользоваться инструкцией, как настроить ключи SSH в Ubuntu 22.04, которая подробно описывает этот процесс.

Если вы еще не подключились к серверу, выполните вход в систему как root user, используя следующую команду (замените выделенную часть команды на публичный IP-адрес вашего сервера):

$ ssh root@your_server_ip

Примите предупреждение об аутентичности хоста, если оно появится на экране. Если вы используете аутентификацию по паролю, укажите пароль root для входа в систему. Если вы используете ключ SSH с защитой по фразе-паролю, вам может быть предложено ввести фразу-пароль в первый раз при использовании ключа в каждом сеансе. Если вы первый раз выполняете вход на сервер с помощью пароля, вам также может быть предложено изменить пароль root.

Подробнее о root

root user — это пользователь с правами администратора в среде Linux, который имеет очень широкий набор привилегий. Из-за такого широкого набора привилегий учетной записи root не рекомендуется использовать ее на регулярной основе. Это связано с тем, что часть возможностей, получаемых с помощью учетной записи root, включает возможность внесения очень разрушительных изменений, даже если это происходит непреднамеренно.

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

Шаг 2 — Создание нового пользователя

После входа в систему с правами root мы готовы добавить новую учетную запись пользователя. В будущем мы выполним вход с помощью этой новой учетной записи, а не с правами root.

Этот пример создает нового пользователя с именем sammy, но вы должны заменить это имя на имя, которое вам нравится:

# adduser sammy

Вам будет предложено ответить на несколько вопросов, начиная с пароля учетной записи.

Введите надежный пароль и введите по желанию любую дополнительную информацию. Это делать необязательно, и вы можете нажать ENTER в любом поле, которое вы хотите пропустить.

Шаг 3 — Предоставление административных прав

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

Чтобы не выполнять выход из стандартной учетной записи и выполнять вход в систему с учетной записью root, мы можем настроить так называемого суперпользователя или добавить привилегии root для стандартной учетной записи. Это позволит нашему обычному пользователю запускать команды с правами администратора, указав слово sudo перед каждой командой.

Чтобы добавить эти права для нового пользователя, нам нужно добавить пользователя в группу sudo. По умолчанию в Ubuntu 22.04 пользователи, входящие в группу sudo могут использовать команду sudo.

Используя права root, запустите эту команду, чтобы добавить нового пользователя в группу sudo (замените выделенное имя пользователя на нового пользователя):

# usermod -aG sudo sammy

Теперь, когда вы войдете в систему со стандартным пользователем, вы можете ввести sudo перед командами для выполнения действий с правами суперпользователя.

Шаг 4 — Настройка базового брандмауэра

Серверы Ubuntu 22.04 могут использовать брандмауэр UFW для проверки, что подключения разрешены только к определенным службам. Мы можем легко настроить базовый брандмауэр с помощью приложения.

Приложения могут регистрировать свои профили в UFW после установки. Эти профили позволяют UFW управлять этими приложениями по имени. OpenSSH, служба, позволяющая подключиться к нашему серверу сейчас, имеет профиль, зарегистрированный в UFW.

Чтобы увидеть это, можно ввести следующую команду:

# ufw app list
Available applications:
  OpenSSH

Нам нужно убедиться в том, что брандмауэр разрешает подключения SSH, чтобы мы могли выполнить вход в следующий раз. Чтобы разрешить эти подключения, можно ввести следующее:

# ufw allow OpenSSH

После этого мы можем активировать брандмауэр с помощью следующей команды:

# ufw enable

Введите y и нажмите ENTER, чтобы продолжить. Чтобы увидеть, что подключения SSH разрешены, введите следующее:

# ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Поскольку брандмауэр в настоящее время блокирует все подключения, кроме SSH, если вы установите и настроите дополнительные службы, потребуется изменить настройки брандмауэра, чтобы разрешить входящий трафик.

Шаг 5 — Активация внешнего доступа для стандартного пользователя

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

Примечание

Пока вы не убедитесь, что вы можете войти в систему и использовать sudo с новым пользователем, мы рекомендуем не выходить из учетной записи root. Таким образом, если у вас есть проблемы, вы можете устранить их и внести необходимые изменения в качестве root.

Процесс настройки доступа SSH для нового пользователя зависит от того, использует ли учетная запись с правами root на сервере пароль или ключи SSH для аутентификации.

Если учетная запись root использует аутентификацию по паролю

Если вы выполнили вход в учетную запись root с помощью пароля, тогда для SSH активирована аутентификация по паролю. Вы можете использовать SSH для новой учетной записи пользователя, запустив новый сеанс терминала и используя SSH с новым именем:

$ ssh sammy@your_server_ip

После ввода пароля для обычного пользователя вы сможете выполнить вход. Если вам нужно запустить команду с правами администратора, введите sudo перед командой следующим образом:

$ sudo command_to_run

Вам будет предложено использовать пароль обычного пользователя при использовании sudo в первый раз для каждого сеанса (и периодически после этого).

Если учетная запись root использует аутентификацию по ключу SSH

Если вы выполнили вход в учетную запись root с помощью ключей SSH, тогда аутентификация по паролю для SSH отключена. Вам потребуется добавить копию локального открытого ключа в файл ~/.ssh/authorized_keys нового пользователя для успешного входа.

Поскольку ваш открытый ключ уже включен в файл ~/.ssh/authorized_keys учетной записи root на сервере, мы можем скопировать структуру этого файла и директории для нашей новой учетной записи в существующем сеансе.

Самый простой способ копирования файлов с правильным правами владения и разрешениями — воспользоваться командой rsync. Она будет копировать директорию .ssh пользователя root user, сохранит разрешения и изменит владельцев файлов, все в одной команде. Обязательно измените выделенные ниже части согласно имени вашего стандартного пользователя:

Примечание

Команда rsync использует источники и пункты назначения, оканчивающиеся на завершающий слеш, иначе, чем те, которые этот завершающий слеш не имеют. При использовании rsync ниже убедитесь, что директория источника (~/.ssh) не включает завершающий слеш (убедитесь, что вы не используете ~/.ssh/​​​).

Если вы случайно добавите в команду завершающий слеш, rsync будет копировать содержимое директории ~/.ssh учетной записи root в домашнюю директорию пользователя sudo вместо копирования всей структуры директории ~/.ssh. Файлы будут находиться в неправильном месте, и SSH не сможет найти и использовать их.

# rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

Теперь откройте новый сеанс терминала на локальном компьютере и используйте SSH с вашим новым именем пользователя:

$ ssh sammy@your_server_ip

Вы должны выполнить вход в новую учетную запись без использования пароля. Если вам нужно запустить команду с правами администратора, введите sudo перед командой следующим образом:

$ sudo command_to_run

Вам будет предложено использовать пароль обычного пользователя при использовании sudo в первый раз для каждого сеанса (и периодически после этого).

Регистрация на хостинге

Рекомендую Beget — бюджетный и с адекватной службой поддержки. Работаю с ними с 2015 года.

Переходим на страницу выбора хостинга и выбираем любой тариф с операционной системой Ubuntu. В нашем примере выберем сервер с двух-ядерным процессором.

Выбор конфигурации сервера

Если вы ещё не зарегистрированы в Beget, появится окно регистрации.

Окно регистрации на сайте Beget

Пополните баланс минимум на 22 рубля, чтобы арендовать сервер.

Панель меню в личном кабинете Beget

Если средств на балансе достаточно, автоматически откроется раздел “Облако”, где мы можем ещё раз подтвердить выбор характеристик сервера, а также задать пароль и название сервера.

Создание сервера

Жмём “Создать виртуальный сервер” и ждём письмо с доступом к серверу на почту.

Назад к настрокам сервера

Сообщение Как настроить VPS для запуска скриптов Python появились сначала на Веб-студия Юсота.


Source: usota.ru python

Python SQLite — учебное пособие на русском языке

Учебное пособие по программированию на Python для базы данных SQLite.

Оглавление

SQLite

SQLite – это встроенный движок реляционной базы данных. В документации это называется автономным, бессерверным, с нулевой конфигурацией и транзакционным ядром базы данных SQL. Он очень популярен и сегодня используется сотнями миллионов копий по всему миру. Несколько языков программирования имеют встроенную поддержку SQLite, включая Python и PHP.

Установка SQLite

sudo apt install sqlite3

Запускаем модуль sqlite3 и консоль пригласит для работы с базой данных:
sqlite>
Список команд для работы с базой данных sqlite> .help

Создание базы данных SQLite

Вся база данных SQLite хранится в обычном файле. Используем команду .open dbname.db. Если база не существует — она будет создана, если существует — будет открыта.

sqlite> .open ydb.db

Python SQLite — как подключаться к базе и отправлять запросы

Для примера получим версию базы данных SQLite.

В первом скрипте рассмотрим работу с базой данных классическим способом: откроем базу – выполним запрос – закроем базу и освободим ресурсы.

#!/usr/bin/python

import sqlite3
import sys

con = None

try:
    con = sqlite3.connect('ydb.db')

    cur = con.cursor()
    cur.execute('SELECT SQLITE_VERSION()')

    data = cur.fetchone()[0]

    print(f"SQLite version: {data}")

except sqlite3.Error as e:

    print(f"Error {e.args[0]}")
    sys.exit(1)

finally:

    if con:
        con.close()
SQLite version: 3.31.1

Рассмотрим код подробнее:

import sqlite3

Импортируем библиотеку sqlite3.

con = None

Объявляем переменную con значением None. Если мы не сможем соединиться с базой данных (например, диск переполнен), а у нас не была бы определена переменная соединения — это приведёт к ошибке в блоке finally.

con = sqlite3.connect('ydb.db')

Подключаемся к базе данных ydb.db. Метод connect возвращает объект соединения.

cur = con.cursor()
cur.execute('SELECT SQLITE_VERSION()')

Из соединения мы получаем объект курсора. Курсор используется для обхода записей из полученных результатов. Мы вызываем метод курсора execute и выполняем SQL-запрос.

data = cur.fetchone()[0]

Поскольку мы получаем только одну запись, мы вызываем метод fetchone.

print(f"SQLite version: {data}")

Полученные данные выводим в консоль.

except sqlite3.Error as e:

    print(f"Error {e.args[0]}")
    sys.exit(1)

В случае ошибки получаем исключение — выводим сообщение об ошибке и выходим из скрипта с кодом ошибки 1.

finally:

    if con:
        con.close()

con.close() закрывает работу с базой данных и освобождаем ресурсы.

Во втором примере мы снова получаем версию базы данных SQLite. На этот раз мы используем контекстный менеджер with.

#!/usr/bin/python

import sqlite3

with sqlite3.connect('ydb.db') as con:

    cur = con.cursor()
    cur.execute('SELECT SQLITE_VERSION()')

    data = cur.fetchone()[0]

    print(f"SQLite version: {data}")

Код выглядит компактнее, читается проще.

Python SQLite — метод execute

Создадим таблицу cars и вставим в нее несколько строк. Для добавления данных используем команду execute.

import sqlite3


with sqlite3.connect('ydb.db') as con:

    cur = con.cursor()

    cur.execute("DROP TABLE IF EXISTS cars;")
    cur.execute("CREATE TABLE cars(id INT, name TEXT, price INT)")
    cur.execute("INSERT INTO cars VALUES(1,'Audi',52642)")
    cur.execute("INSERT INTO cars VALUES(2,'Mercedes',57127)")
    cur.execute("INSERT INTO cars VALUES(3,'Skoda',9000)")
    cur.execute("INSERT INTO cars VALUES(4,'Volvo',29000)")
    cur.execute("INSERT INTO cars VALUES(5,'Bentley',350000)")
    cur.execute("INSERT INTO cars VALUES(6,'Citroen',21000)")
    cur.execute("INSERT INTO cars VALUES(7,'Hummer',41400)")
    cur.execute("INSERT INTO cars VALUES(8,'Volkswagen',21600)")

Рассмотрим подробнее:

cur.execute("DROP TABLE IF EXISTS cars;")

Удаляем таблицу, если она уже существует.

cur.execute("CREATE TABLE cars(id INT, name TEXT, price INT)")

Создаём новую таблицу cars с тремя столбцами: id, name, price.

cur.execute("INSERT INTO cars VALUES(1,'Audi',52642)")
cur.execute("INSERT INTO cars VALUES(2,'Mercedes',57127)")

Эти две строки вставляют в таблицу два автомобиля. Благодаря использованию контекстного менеджера with изменения фиксируются автоматически. В противном случае нам пришлось бы фиксировать их вручную.

sqlite> .mode column
sqlite> .headers on

Выведем записанные данные в консоль с помощью модуля sqlite3. Изменим способ отображения данных в консоли — используем режим столбцов и отобразим заголовки.

sqlite> select * from cars;
id          name        price
----------  ----------  ----------
1           Audi        52642
2           Mercedes    57127
3           Skoda       9000
4           Volvo       29000
5           Bentley     350000
6           Citroen     21000
7           Hummer      41400
8           Volkswagen  21600

Python SQLite — метод executemany

Создадим ту же таблицу, но уже с помощью более быстрого метода executemany. С помощью executemany можно вставлять сразу несколько записей.

Python SQLite — executemany INSERT

import sqlite3


cars = (
    (1, 'Audi', 52642),
    (2, 'Mercedes', 57127),
    (3, 'Skoda', 9000),
    (4, 'Volvo', 29000),
    (5, 'Bentley', 350000),
    (6, 'Hummer', 41400),
    (7, 'Volkswagen', 21600)
)

with sqlite3.connect('ydb.db') as con:

    cur = con.cursor()

    cur.execute("DROP TABLE IF EXISTS cars")
    cur.execute("CREATE TABLE cars(id INT, name TEXT, price INT)")
    cur.executemany("INSERT INTO cars VALUES(?, ?, ?)", cars)

Вставляем сразу восемь строк в таблицу.

cur.executemany("INSERT INTO cars VALUES(?, ?, ?)", cars)

Первый параметр — запрос SQL, второй параметр — кортеж кортежей.

Python SQLite — executemany SELECT

Метод executemany используется только для вставки данных. Иногда ошибочно пытаются получить данные по фильтру из списка значений с помощью executemany. Но для этого используется метод execute с подстановкой значений.

cur.execute('SELECT * FROM cars WHERE name in ({0})'.format(', '.join('?' for _ in names)), names)

Python SQLite — метод executescript

Рассмотрим способ создания таблицы автомобилей с помощью executescript. Будем фиксировать изменения вручную и добавим собственную обработку ошибок.

import sqlite3
import sys

con = None

try:
    con = sqlite3.connect('ydb.db')

    cur = con.cursor()

    cur.executescript("""
        DROP TABLE IF EXISTS cars;
        CREATE TABLE cars(id INT, name TEXT, price INT);
        INSERT INTO cars VALUES(1,'Audi',52642);
        INSERT INTO cars VALUES(2,'Mercedes',57127);
        INSERT INTO cars VALUES(3,'Skoda',9000);
        INSERT INTO cars VALUES(4,'Volvo',29000);
        INSERT INTO cars VALUES(5,'Bentley',350000);
        INSERT INTO cars VALUES(6,'Citroen',21000);
        INSERT INTO cars VALUES(7,'Hummer',41400);
        INSERT INTO cars VALUES(8,'Volkswagen',21600);
        """)

    con.commit()

except sqlite3.Error as e:

    if con:
        con.rollback()

    print(f"Error {e.args[0]}")
    sys.exit(1)

finally:

    if con:
        con.close()

executescript позволяет выполнять сразу несколько сриптов в одном запросе.

con.commit()

Без контекстного менеджера with изменения должны быть зафиксированы с помощью метода commit.

except sqlite.Error as e:

    if con:
        con.rollback()

    print(f"Error {e.args[0]}")
    sys.exit(1)

В случае ошибки изменения откатываются con.rollback(), а на терминал выводится сообщение об ошибке.

Python SQLite — метод lastrowid

Иногда требуется получить id последней строки таблицы в базе данных. В Python SQLite используем атрибут lastrowid объекта курсора.

import sqlite3

with sqlite3.connect(':memory:') as con:

    cur = con.cursor()
    cur.execute("CREATE TABLE friends(id INTEGER PRIMARY KEY, name TEXT);")
    cur.execute("INSERT INTO friends(name) VALUES ('Tom');")
    cur.execute("INSERT INTO friends(name) VALUES ('Rebecca');")
    cur.execute("INSERT INTO friends(name) VALUES ('Jim');")
    cur.execute("INSERT INTO friends(name) VALUES ('Robert');")

    last_row_id = cur.lastrowid

    print(f"The last Id of the inserted row is {last_row_id}")

:memory: — база данных, которая создаётся временно.

Python SQLite — получение данных с помощью fetchall

Метод fetchall извлекает все (или все оставшиеся) строки из набора результатов запроса и возвращает список кортежей.

import sqlite3


with sqlite3.connect('ydb.db') as con:

    cur = con.cursor()
    cur.execute("SELECT * FROM cars")

    rows = cur.fetchall()

    for row in rows:
        print(f"{row[0]} {row[1]} {row[2]}")

Python SQLite — метод fetchone

Метод fetchone возвращает следующую строку полученных результатов. Возвращает один кортеж или None, когда больше нет доступных данных.

import sqlite3

con = sqlite3.connect('ydb.db')

with con:

    cur = con.cursor()
    cur.execute("SELECT * FROM cars")

    while True:

        row = cur.fetchone()

        if row == None:
            break

        print(f"{row[0]} {row[1]} {row[2]}")

Python SQLite — row_factory

По умолчанию курсор возвращает данные в виде кортежа кортежей. Когда мы используем row_factory, данные передаются в виде словарей Python. Таким образом, мы можем ссылаться на данные по именам столбцов.

import sqlite3

con = sqlite3.connect('ydb.db')

with con:

    con.row_factory = sqlite3.Row

    cur = con.cursor()
    cur.execute("SELECT * FROM cars")

    rows = cur.fetchall()

    for row in rows:
        print(f"{row['id']} {row['name']} {row['price']}")

Python SQLite — как проверить, существует ли база данных

Невозможно проверить, существует ли файл базы данных с помощью метода connect. Метод просто подключается к базе данных, если файл существует. Если файл не существует, файл базы данных создается. Существование файла базы данных можно проверить с помощью стандартной функции os.path.exist.

import os
import sqlite3


if not os.path.exists('ydb.db'):

    con = sqlite3.connect('ydb.db')

    with con:

        cur = con.cursor()
        cur.execute("DROP TABLE IF EXISTS cars")
        cur.execute("CREATE TABLE cars(id INT, name TEXT, price INT)")
        cur.execute("INSERT INTO cars VALUES(1,'Audi', 52642)")
        cur.execute("INSERT INTO cars VALUES(2,'Mercedes', 57127)")
        cur.execute("INSERT INTO cars VALUES(3,'Skoda',9000)")
        cur.execute("INSERT INTO cars VALUES(4,'Volvo',29000)")
        cur.execute("INSERT INTO cars VALUES(5,'Bentley', 350000)")
        cur.execute("INSERT INTO cars VALUES(6,'Citroen',21000)")
        cur.execute("INSERT INTO cars VALUES(7,'Hummer',41400)")
        cur.execute("INSERT INTO cars VALUES(8,'Volkswagen', 21600)")

else:

    with sqlite3.connect('ydb.db') as con:

        cur = con.cursor()
        cur.execute("SELECT * FROM cars")
        rows = cur.fetchmany(2)

        print(rows)

В этом скрипте мы проверяем, существует ли файл ydb.db. Если файл не существует, он создается и генерируется новая таблица. Если база данных уже существует, мы извлекаем две строки из таблицы.

if not os.path.exists('test.db'):

  con = sqlite3.connect('test.db')
  ...

Python SQLite — подстановка значений в SQL-запрос

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

Модуль Python sqlite3 поддерживает два типа заполнителей: вопросительные знаки и именованные параметры.

Подстановка значений с помощью вопросительных знаков

import sqlite3

uId = 1
uPrice = 62300

con = sqlite3.connect('ydb.db')

with con:

    cur = con.cursor()
    cur.execute("UPDATE cars SET price=? WHERE id=?", (uPrice, uId))

    print(f"Number of rows updated: {cur.rowcount}")

Метод rowcount возвращает количество обновленных строк.

Подстановка значений с помощью именованных параметров

import sqlite3

uId = 4

con = sqlite3.connect('ydb.db')

with con:

    cur = con.cursor()
    cur.execute("SELECT name, price FROM cars WHERE Id=:Id", {"Id": uId})

    row = cur.fetchone()
    print(f"{row[0]}, {row[1]}")

Python SQLite — хранение изображений в базе данных

Вставка изображений

Рассмотрим хранение изображений в базе данных SQLite. Конечно, сохранять изображения в базе данных нецелесообразно.  Общая практика состоит в том, чтобы хранить изображения в каталогах файловой системы и хранить ссылки на изображения в базе данных. Но мы рассмотрим этот приём для общего понимания возможностей SQLite.

sqlite> CREATE TABLE images(id INTEGER PRIMARY KEY, data BLOB);

Для этого примера создаем новую таблицу под названием images. Для изображений используем тип данных BLOB (англ. Binary Large Object — двоичный большой объект) — массив двоичных данных.

import sqlite3
import sys

def readImage():

    fin = None

    try:
        fin = open("sid.jpg", "rb")
        img = fin.read()
        return img

    except IOError as e:

        print(e)
        sys.exit(1)

    finally:

        if fin:
            fin.close()

con = None

try:
    con = sqlite3.connect('ydb.db')

    cur = con.cursor()

    data = readImage()
    binary = sqlite3.Binary(data)
    cur.execute("INSERT INTO images(data) VALUES (?)", (binary,) )

    con.commit()

except sqlite3.Error as e:

    if con:
        con.rollback()

    print(e)
    sys.exit(1)

finally:

    if con:
        con.close()

Рассмотрим скрипт подробнее:

Открываем и считываем изображения из каталога в базе данных.

try:
    fin = open("sid.jpg", "rb")
    img = fin.read()
    return img

Мы считываем двоичные данные из файловой системы. У нас есть изображение в формате JPG, называемое sid.jpg.

binary = sqlite3.Binary(data)

Данные кодируются с использованием двоичного объекта SQLite.

cur.execute("INSERT INTO images(data) VALUES (?)", (binary,) )

Получение изображений

Выполним обратную операцию: получим изображение из таблицы базы данных.

import sqlite3
import sys


def writeImage(data):

    fout = None

    try:
        fout = open('sid2.jpg','wb')
        fout.write(data)

    except IOError as e:

        print(e)
        sys.exit(1)

    finally:

        if fout:
            fout.close()

con = None

try:
    con = sqlite3.connect('ydb.db')

    cur = con.cursor()
    cur.execute("SELECT data FROM images LIMIT 1")
    data = cur.fetchone()[0]

    writeImage(data)


except sqlite3.Error as e:

    print(e)
    sys.exit(1)

finally:

    if con:
        con.close()

Python SQLite — метаданные таблиц

Метаданные – это информация о данных в базе данных. Метаданные в SQLite содержат информацию о таблицах и столбцах, в которых мы храним данные.

Метаданные в SQLite можно получить с помощью команды PRAGMA. Объекты SQLite могут иметь атрибуты, которые являются метаданными. Наконец, мы также можем получить конкретные метатеги, запросив таблицу sqlite_master системы SQLite.

import sqlite3

con = sqlite3.connect('ydb.db')

with con:

    cur = con.cursor()

    cur.execute('PRAGMA table_info(cars)')

    data = cur.fetchall()

    for d in data:
        print(f"{d[0]} {d[1]} {d[2]}")

В этом примере мы выполняем команду PRAGMA table_info(имя_таблицы), чтобы получить некоторую информацию о метаданных нашей таблицы cars.

ur.execute('PRAGMA table_info(cars)')

Команда PRAGMA table_info(имя_таблицы) возвращает по одной строке для каждого столбца в таблице cars. Столбцы в результирующем наборе включают порядковый номер столбца, имя столбца, тип данных, может ли столбец быть нулевым или нет, и значение по умолчанию для столбца.

for d in data:
    print(f"{d[0]} {d[1]} {d[2]}")

В следующем примере выведем все строки из таблицы cars с именами их столбцов.

import sqlite3

con = sqlite3.connect('ydb.db')

with con:

    cur = con.cursor()
    cur.execute('SELECT * FROM cars')

    col_names = [cn[0] for cn in cur.description]

    rows = cur.fetchall()

    print(f"{col_names[0]:3} {col_names[1]:10} {col_names[2]:7}")

    for row in rows:
        print(f"{row[0]:<3} {row[1]:<10} {row[2]:7}")

Мы выводим содержимое таблицы cars на консоль. Теперь мы также включаем названия столбцов. Записи выровнены по именам столбцов.

col_names = [cn[0] for cn in cur.description]

Получаем имена столбцов из свойства description объекта cursor.

print(f"{col_names[0]:3} {col_names[1]:10} {col_names[2]:7}")

В этой строке выводятся названия трех столбцов таблицы cars.

for row in rows:
    print(f"{row[0]:<3} {row[1]:<10} {row[2]:7}")

Печатаем строки с помощью цикла for. Данные выровнены по именам столбцов.

id  name       price
1   Audi         62300
2   Mercedes     57127
3   Skoda         9000
4   Volvo        29000
5   Bentley     350000
6   Hummer       41400
7   Volkswagen   21600

В последнем примере перечислим все таблицы в базе данных ydb.db.

import sqlite3

con = sqlite3.connect('ydb.db')

with con:

    cur = con.cursor()
    cur.execute("SELECT name FROM sqlite_master WHERE type='table'")

    rows = cur.fetchall()

    for row in rows:
        print(row[0])

Пример кода выводит на терминал все доступные таблицы в текущей базе данных.

cur.execute("SELECT name FROM sqlite_master WHERE type='table'")

Имена таблиц хранятся внутри системной таблицы sqlite_master.

cars
images

Python SQLite — экспорт данных

Создадим резервную копию таблиц нашей базы данных.

import sqlite3

cars = (
    (1, 'Audi', 52643),
    (2, 'Mercedes', 57642),
    (3, 'Skoda', 9000),
    (4, 'Volvo', 29000),
    (5, 'Bentley', 350000),
    (6, 'Hummer', 41400),
    (7, 'Volkswagen', 21600)
)

def writeData(data):

    f = open('cars.sql', 'w')

    with f:
        f.write(data)


con = sqlite3.connect(':memory:')

with con:

    cur = con.cursor()

    cur.execute("DROP TABLE IF EXISTS cars")
    cur.execute("CREATE TABLE cars(id INT, name TEXT, price INT)")
    cur.executemany("INSERT INTO cars VALUES(?, ?, ?)", cars)
    cur.execute("DELETE FROM cars WHERE price < 30000")

    data = 'n'.join(con.iterdump())

    writeData(data)

В этом примере воссоздаем таблицу cars в временной базе данных. Удаляем некоторые строки из таблицы и сохраняем текущее состояние таблицы в файл cars.sql. Этот файл будет служить резервной копией текущей таблицы.

def writeData(data):

    f = open('cars.sql', 'w')

    with f:
        f.write(data)

Данные из таблицы записываются в файл.

con = sqlite3.connect(':memory:')

Создаем таблицу во временной базе данных.

cur.execute("DROP TABLE IF EXISTS cars")
cur.execute("CREATE TABLE cars(id INT, name TEXT, price INT)")
cur.executemany("INSERT INTO cars VALUES(?, ?, ?)", cars)
cur.execute("DELETE FROM cars WHERE price < 30000")

Создаём таблицу cars, вставляем значения и удаляем строки, где цена меньше 30000.

data = 'n'.join(con.iterdump())

con.iterdump возвращает итератор для дампа базы данных в текстовом формате SQL. Встроенная функция join принимает итератор и объединяет все строки в итераторе, разделенные новой строкой. Эти данные записываются в файл cars.sql с помощью функции writeData.

Python SQLite — импорт данных

Выполним обратную операцию. Импортируем ранее сохранённую таблицу.

import sqlite3


def readData():

    f = open('cars.sql', 'r')

    with f:

        data = f.read()

        return data


con = sqlite3.connect(':memory:')

with con:

    cur = con.cursor()

    sql = readData()
    cur.executescript(sql)

    cur.execute("SELECT * FROM cars")

    rows = cur.fetchall()

    for row in rows:
        print(row)

Python SQLite — транзакции

Транзакция – это процесс выполнения операций с базой данных. В одной транзакции может быть несколько операций. Операции в транзакции могут быть либо выполнены целиком и полностью все, либо не выполнены вообще.

Транзакции начинаются с инструкции BEGIN TRANSACTION и завершаются инструкциями COMMIT или ROLLBACK.

SQLite поддерживает три уровня транзакций: DEFERREDIMMEDIATE and EXCLUSIVE.

  1. DEFERRED – данный режим блокировки является режимом по умолчанию в SQLite. В режиме DEFERRED SQLite начинает блокировать таблицы только после того, как будет начато выполнение какой-либо команды, при этом другие транзакции могут читать данные из таблицы, но не могут их изменять.
  2. IMMEDIATE – в данном режим происходит блокировка базы данных, как только будет выполнена команда BEGIN. При это режим IMMEDIATE в SQLIte допускает, что другие транзакции могут читать данные из базы данных, но не записывать.
  3. EXCLUSIVE – самый высокий уровень блокировки базы данных в SQLite. Режим EXCLUSIVE блокирует базу данных при выполнении команды BEGIN и при этом другие транзакции не могут ни читать данные из базы данных, ни уж тем более изменять данные.

Модуль Python SQLite также поддерживает режим автоматической фиксации, при котором все изменения в таблицах вступают в силу немедленно.

import sqlite3
import sys

con = None

try:
    con = sqlite3.connect('ydb.db')
    
    cur = con.cursor()
    cur.execute("DROP TABLE IF EXISTS friends")
    cur.execute("CREATE TABLE friends(id INTEGER PRIMARY KEY, name TEXT)")
    cur.execute("INSERT INTO friends(name) VALUES ('Tom')")
    cur.execute("INSERT INTO friends(name) VALUES ('Rebecca')")
    cur.execute("INSERT INTO friends(name) VALUES ('Jim')")
    cur.execute("INSERT INTO friends(name) VALUES ('Robert')")

    #con.commit()

except sqlite3.Error as e:

    if con:
        con.rollback()

    print(e)
    sys.exit(1)

finally:

    if con:
        con.close()

Мы создаем таблицу friends и пытаемся заполнить ее данными. Однако, как мы увидим, данные не фиксируются.

#con.commit()

Метод фиксации con.commit() закомментирован. Если мы раскомментируем строку, данные будут записаны в таблицу.

Python SQLite autocommit

В режиме автоматической фиксации инструкция SQL выполняется немедленно.

import sqlite3
import sys

con = None

try:
    con = sqlite3.connect('ydb.db', isolation_level = None)
    
    cur = con.cursor()

    cur.execute("DROP TABLE IF EXISTS friends")
    cur.execute("CREATE TABLE friends(id INTEGER PRIMARY KEY, name TEXT)")
    cur.execute("INSERT INTO friends(name) VALUES ('Tom')")
    cur.execute("INSERT INTO friends(name) VALUES ('Rebecca')")
    cur.execute("INSERT INTO friends(name) VALUES ('Jim')")
    cur.execute("INSERT INTO friends(name) VALUES ('Robert')")

except sqlite3.Error as e:

    print(e)
    sys.exit(1)

finally:

    if con:
        con.close()

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

con = sqlite3.connect('ydb.db', isolation_level = None)

Смотрите также: Руководство по стилю SQL

Сообщение Python SQLite — учебное пособие на русском языке появились сначала на Веб-студия Юсота.


Source: usota.ru python

WooCommerce — экспорт дерева категорий с помощью API

В предыдущей статье мы рассмотрели как получить дерево категорий с помощью стандартного экспорта WooCommerce.

Но этот способ с кучей недостатков:

  • медленно
  • у товара может быть несколько категорий
  • неизвестно id категории

А вот с помощью API мы можем получить удобную таблицу с ID и полным путём категории.

Пример таблицы экспорта дерева категорий

Скрипт написан на языке Python.

Возможно написано топорно, но задачу свою решает.

Сообщение WooCommerce — экспорт дерева категорий с помощью API появились сначала на Веб-студия Юсота.


Source: usota.ru python

Преобразуем проект на Python в исполняемый файл .EXE с помощью PyInstaller

Внимание! Исполняемый файл будет работать только на той же платформе, на которой он был создан. Например, исполняемый файл, созданный в Windows 10-64 bit, не будет работать в Windows 10-32 bit или в Windows Server. Очевидно, что он также не будет работать на Mac OS или ОС на базе Linux.

Разработчик https://pyinstaller.org/en/stable/

Устанавливаем библиотеку PyInstaller в наше окружение. Важно установить именно в окружение, иначе могут быть проблемы с установкой модулей. Можем получить ошибку “pyinstaller no module named”.

Windows:

py -m pip install pyinstaller

Unix/macOS:

python3 -m pip install pyinstaller

Преобразуем скрипт в программу

pyinstaller myscript.py --onefile --windowed

–onefile – приложение в одном файле
–windowed – не показывать консоль
–console – показывать консоль

У вас появятся две новые папки:
– build
– dist

В папке dist будет лежать наш исполняемый файл.

Ошибки

pyinstaller no module named

  1. Удаляем пакет в папке build и формируем файл заново
  2. Или пробуем добавить установку модуля принудительно с помощью --hidden-import:
pyinstaller myscript.py --onefile --windowed --hidden-import=namemodule

Ошибка «ModuleNotFoundError: No module named ‘setuptools’»

Некоторые пакеты Python используют для развёртывания distutils, но в настоящее время большинство использует setuptools.

Setuptools — это расширение для python-distutils для больших и сложных развёртываний.

Если у вас Ubuntu, Linux Mint, Debian или производный от них дистрибутив, то вы можете установить этот пакет из стандартных репозиториев:

sudo apt install python3-setuptools

Если вы уже установили PIP (а именно пакет python3-pip), то вместо указанной выше команды, можно выполнить такую:

sudo pip3 install --upgrade setuptools

Если у вас Windows:

python -m pip install -U pip setuptools

Сообщение Преобразуем проект на Python в исполняемый файл .EXE с помощью PyInstaller появились сначала на Веб-студия Юсота.


Source: usota.ru python

Python для Data Science: как использовать встроенные модули и провести импорт данных

Python для Data Science: импорт и работа с встроенными модулями

Python – один из наиболее популярных языков программирования для Data Science. Он обладает множеством удобных инструментов для работы с данными, включая встроенные модули.

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

Знание этих модулей позволит нам улучшить качество обработки данных в Python и сделать наш код более эффективным и удобочитаемым.

Продолжим.

NumPy

NumPy – это библиотека для языка программирования Python, которая предоставляет поддержку многомерных массивов и матриц, а также функции для работы с ними.

Основное преимущество NumPy в том, что она позволяет работать с данными быстрее, чем стандартные списки языка Python, так как использует оптимизированный C-код.

NumPy широко используется в Data Science и Machine Learning, так как предоставляет мощные математические функции для работы с данными, такие как линейная алгебра, статистика, случайные числа.

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

Для работы с NumPy необходимо установить ее с помощью менеджера пакетов pip.

Пример установки NumPy:

Операционная системаКоманда установки
Windowspip install numpy
MacOS/Linuxsudo pip install numpy

После установки можно импортировать NumPy в свою программу:

  1. import numpy as np
  2. from numpy import *

Установка NumPy

NumPy – это одна из самых известных библиотек для работы с многомерными массивами данных в Python. Если вы работаете с Data Science, то NumPy будет вашим верным помощником. Для установки NumPy необходимо выполнить несколько простых шагов:

  1. Откройте терминал и введите следующую команду:
    • pip install numpy
  2. Дождитесь, пока установка NumPy будет завершена. Все зависимые пакеты будут установлены автоматически.
  3. Проверьте, что NumPy установлен правильно, введите следующую команду в терминале:
    • import numpy
  4. Если при этом ничего не вывелось, то NumPy установлен правильно, и вы можете начинать работать с библиотекой в своих проектах.

Зачастую удобнее использовать управляющий пакет, например, Anaconda, который позволяет легко устанавливать все необходимые библиотеки и инструменты для работы с Data Science.

Сравнение установки NumPy в терминале и при помощи Anaconda:
УстановкаКоманда
В терминалеpip install numpy
В Anacondaconda install numpy

В любом случае, установка NumPy – это достаточно простая процедура, которую можно выполнить за несколько минут. Главное – иметь работающий интерпретатор Python и, желательно, свежий.

Создание и работа с массивами NumPy

NumPy (Numerical Python) – это библиотека Python для научных вычислений, которая предоставляет удобный способ работы с массивами и матрицами. Работа с массивами NumPy может помочь в решении задач, связанных с обработкой данных, статистикой и машинным обучением.

Создание массивов в NumPy очень просто. Например, чтобы создать одномерный массив, можно воспользоваться функцией numpy.array():

import numpy as np

a = np.array([1, 2, 3, 4, 5])

print(a)

Также можно создать двумерный массив, указав несколько списков:

b = np.array([[1, 2, 3], [4, 5, 6]])

print(b)

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

c = np.array([1, 2, 3])

d = np.array([4, 5, 6])

print(c + d)

print(c * d)

Для работы с многомерными массивами в NumPy представлены различные инструменты, например, функции numpy.reshape() и numpy.transpose(). С помощью функции reshape() можно изменять форму массива:

e = np.array([[1, 2], [3, 4], [5, 6]])

print(e)

f = np.reshape(e, (2, 3))

print(f)

Функция transpose() меняет местами строки и столбцы в матрице:

g = np.array([[1, 2], [3, 4], [5, 6]])

print(g)

h = np.transpose(g)

print(h)

Работа с массивами в NumPy является важной частью Data Science и может помочь в решении многих задач. Знание особенностей работы с массивами NumPy позволит с легкостью обрабатывать и анализировать данные!

Pandas

Pandas

Pandas – это библиотека для работы с данными на языке программирования Python. Библиотека предоставляет удобные и мощные инструменты для обработки, анализа и манипуляции с данными.

Основным объектом в библиотеке Pandas является DataFrame, который позволяет удобно работать с табличными данными. DataFrame можно создать из различных источников данных: excel-файлов, csv-файлов, баз данных и других.

Библиотека Pandas позволяет проводить множество операций со столбцами и строками в DataFrame, например, выбирать конкретные столбцы или строки, изменять значения ячеек по условию, удалять столбцы или строки и т.д.

Также в библиотеке Pandas есть мощный инструментарий для работы с пропущенными данными (NaN). Библиотека позволяет заменять пропущенные значения на среднее, медиану или другое значение, а также удалять строки, содержащие NaN.

Кроме того, Pandas предоставляет удобный и мощный инструментарий для визуализации данных, включая графики, гистограммы и диаграммы.

  • Преимущества использования Pandas:
  • Удобство работы с табличными данными
  • Мощный инструментарий для обработки и анализа данных
  • Широкие возможности для работы с пропущенными данными
  • Удобный инструментарий для визуализации данных

Установка Pandas

Pandas – это библиотека языка программирования Python, которая используется для работы с данными. Она предоставляет широкие возможности по анализу, манипуляции и визуализации данных.

Установка Pandas осуществляется с помощью менеджера пакетов pip. Для этого необходимо открыть терминал или командную строку и выполнить следующую команду:

pip install pandas

Если у вас возникнут проблемы с установкой, то можно скачать и установить Anaconda Distribution, которая включает в себя большинство необходимых модулей для анализа данных, включая Pandas.

КомандаОписание
pip install pandasУстановка библиотеки Pandas с помощью pip
conda install pandasУстановка библиотеки Pandas с помощью Anaconda

Также при установке Pandas рекомендуется установить аналогичным образом библиотеки NumPy и Matplotlib, которые также широко используются при анализе данных в Python.

После установки Pandas можно начать выполнять операции с данными, используя различные методы и функции, которые предоставляются этой библиотекой.

Чтение, запись и изменение данных в Pandas

Чтение, запись и изменение данных в Pandas

Одна из главных функций, предоставляемых библиотекой Pandas – это возможность работы с данными. В этой статье мы рассмотрим несколько методов для чтения, записи и изменения данных в Pandas.

Чтение данных в Pandas

Чтение данных в Pandas может происходить из разных источников – CSV, Excel и SQL базы данных (включая SQLite). Методы для чтения данных могут варьироваться в зависимости от источника данных.

Для чтения CSV файлов можно использовать функцию pd.read_csv(). Она может принимать на вход путь к файлу или ссылку на интернет-ресурс. Для чтения Excel-файлов можно использовать метод pd.read_excel(). Он также принимает на вход путь к файлу или ссылку на интернет-ресурс. Для чтения данных из SQL базы данных можно использовать функцию pd.read_sql().

Запись данных в Pandas

Запись данных в Pandas осуществляется с помощью методов, соответствующих методам чтения данных. Для записи данных в CSV файл можно использовать метод to_csv(). Для записи данных в Excel-файл используется метод to_excel(). Для записи данных в SQL базу данных можно использовать метод to_sql().

Изменение данных в Pandas

Наиболее частые операции изменения данных в Pandas – добавление, удаление и изменение столбцов. Для добавления нового столбца в DataFrame можно использовать индексацию объекта, как при работе со словарями. Для удаления столбца из DataFrame используется метод drop(). Изменить значения в DataFrame можно с помощью индексации – указываются имя столбца и индекс строки. Также можно использовать метод replace() для замены значений в DataFrame.

В заключении можно сказать, что библиотека Pandas предоставляет широкие возможности для работы с данными. Знание методов чтения, записи и изменения данных поможет усовершенствовать навыки работы с этим инструментом.

Обработка данных в Pandas

Pandas – это библиотека языка Python, предназначенная для обработки и анализа структурированных данных. Именно благодаря Pandas удается эффективно работать с большими объемами информации и находить нужные данные в огромных массивах.

Основные структуры данных в Pandas:

  • Series – одномерный массив с метками, используется для представления колонок или строк таблицы;
  • DataFrame – таблица, состоящая из нескольких Series;
  • Panel – трехмерный массив, состоящий из нескольких DataFrame.

Основные функции и методы для работы с Pandas:

  • read_csv() – чтение данных из csv-файла;
  • to_csv() – запись данных в csv-файл;
  • pd.merge() – объединение таблиц;
  • groupby() – группировка данных;
  • fillna() – заполнение пропущенных значений;
  • drop_duplicates() – удаление дубликатов;
  • pivot_table() – создание сводных таблиц.

Пример использования Pandas:

ИмяВозрастЗарплата
Алина2540000
Денис3060000
Елена2855000

Создаем DataFrame:

import pandas as pd

data = {‘Имя’: [‘Алина’, ‘Денис’, ‘Елена’], ‘Возраст’: [25, 30, 28], ‘Зарплата’: [40000, 60000, 55000]}

df = pd.DataFrame(data)

print(df)

Результат:

Имя Возраст Зарплата

0 Алина 25 40000

1 Денис 30 60000

2 Елена 28 55000

Matplotlib

Matplotlib – библиотека для визуализации данных в языке программирования Python. Она предоставляет широкие возможности для создания графиков и диаграмм различного типа и сложности. Библиотека является одним из стандартных инструментов для работы в области Data Science.

Для работы с графиками в Matplotlib необходимо подключить модуль pyplot. В нем содержатся функции для создания графиков, настройки их параметров и добавления элементов легенды и текста.

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

В Matplotlib существует множество настроек для красивого и информативного отображения данных. В том числе это настройки цветов и шрифтов, добавления сетки и подписей к осям, изменение размеров и формы графиков. Для более продвинутых пользователей доступен API библиотеки, позволяющий создавать высокоуровневые и сложные графические элементы.

Matplotlib является открытым инструментом и имеет активное сообщество разработчиков, которые создают новые функции и поддерживают библиотеку в актуальном состоянии. Благодаря этому Matplotlib является универсальным инструментом для работы с данными любого типа и сложности.

Установка Matplotlib

Matplotlib – это библиотека для визуализации данных в Python. Установите Matplotlib следующим образом:

  1. Откройте терминал и запустите команду “pip install matplotlib”.
  2. Если вы используете Anaconda, можно установить Matplotlib с помощью команды “conda install matplotlib”.

После установки можно импортировать Matplotlib в свой проект следующим образом:

import matplotlib.pyplot as plt

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

  • Модуль pyplot для создания базовых графиков.
  • Модуль pylab для быстрой визуализации данных.
  • Модуль mplot3d для создания 3D-графиков.

Matplotlib – это мощный инструмент для визуализации данных в Python. Установите его и начните визуализировать данные прямо сейчас!

Создание графиков в Matplotlib

Matplotlib – библиотека языка Python для создания графиков и визуализации данных. С ее помощью можно создавать как простейшие графики, так и сложные визуальные представления.

Для начала работы с Matplotlib нужно импортировать ее модуль pyplot:

import matplotlib.pyplot as plt

Теперь можно приступить к созданию графика. Самый простой способ – это функция plot, которая рисует линии в координатах. Например, следующий код создает простой график:

x = [0, 1, 2, 3, 4]

y = [0, 2, 4, 6, 8]

plt.plot(x, y)

plt.show()

Также можно добавлять на график различные элементы, например, заголовок, подписи осей, легенду. Например:

plt.plot(x, y, label='Линия 1')

plt.xlabel('Ось x')

plt.ylabel('Ось y')

plt.title('Простой график')

plt.legend()

plt.show()

Matplotlib также предоставляет целый ряд других функций для создания графиков, включая scatter, bar, histogram, pie и многие другие. Их использование аналогично функции plot.

В заключение хочется отметить, что Matplotlib является мощным инструментом для создания графиков и визуализации данных в Python. Она имеет широкие возможности для настройки оформления графиков и позволяет создавать как простые, так и сложные визуальные представления.

Scikit-learn

Scikit-learn – это библиотека для машинного обучения на языке Python, которая предоставляет широкий спектр инструментов для анализа данных и построения моделей.

Библиотека предназначена для решения задач классификации, регрессии, кластеризации, обработки текстовых данных, а также других задач, связанных с машинным обучением.

Scikit-learn включает в себя реализацию многих алгоритмов машинного обучения, таких как линейная и логистическая регрессия, деревья решений, случайные леса, нейронные сети, метод опорных векторов, байесовские классификаторы, кластеризация K-средних и многое другое.

Библиотека имеет удобный и интуитивно понятный интерфейс, позволяющий быстро и просто настраивать параметры моделей и оценивать их качество. De facto – это стандартное решение для машинного обучения в Python.

  • Scikit-learn нередко используют в научных и производственных целях, например, для решения сложных задач проектирования лекарственных препаратов
  • Библиотека имеет отличную документацию и множество обучающих материалов, включая книги и видеокурсы
  • Для удобства работы с данной библиотекой, есть возможность создавать «pipeline», являющейся последовательностью различных этапов извлечения признаков, отбора признаков и последующей обработки для конечной цели

Установка Scikit-learn

Scikit-learn – это библиотека на языке Python, предназначенная для машинного обучения и анализа данных. Для ее использования необходимо сначала ее установить.

Самый простой способ установки библиотеки Scikit-learn – использовать пакетный менеджер pip. Откройте командную строку и введите следующую команду:

pip install -U scikit-learn

Эта команда загрузит и установит последнюю версию Scikit-learn.

Если вы используете Anaconda, вы можете установить Scikit-learn с помощью Anaconda Navigator или Anaconda Prompt. Выберите соответствующий способ в зависимости от того, что вы удобнее.

Если у вас возникнут проблемы с установкой Scikit-learn, обратитесь к документации библиотеки или к сообществу Python-разработчиков, чтобы получить помощь.

Машинное обучение в Scikit-learn

Scikit-learn – это библиотека машинного обучения для языка Python, которая содержит множество алгоритмов и инструментов для решения задач обучения с учителем и без учителя.

В Scikit-learn реализованы такие методы машинного обучения, как линейная и логистическая регрессия, деревья решений, метод опорных векторов, случайные леса, градиентный бустинг и многие другие.

Библиотека имеет простой и интуитивно понятный интерфейс, который позволяет легко построить модель и выполнить предсказание на новых данных.

Scikit-learn также предоставляет множество инструментов для обработки данных перед обучением модели, таких как кодирование категориальных признаков, масштабирование данных, а также возможности для выбора наиболее значимых признаков.

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

В итоге, Scikit-learn является одной из самых популярных библиотек для машинного обучения в Python и позволяет быстро и эффективно решать множество задач в области Data Science.

Вопрос-ответ:

Какие модули Python обязательно нужно установить для работы с данными?

Для работы с данными в Python есть множество модулей. Одним из основных является NumPy, который предоставляет возможности по работе с многомерными массивами и матрицами, а также функции для работы с линейной алгеброй. Вторым важным модулем является pandas, который предоставляет базовые функции для работы с таблицами, включая чтение и запись данных в различных форматах, аггрегирование и группирование данных и пр. Кроме того, стоит установить модуль Matplotlib для создания графиков и визуализации данных.

Как правильно импортировать модуль в Python?

Для импорта модуля в Python используется ключевое слово import, за которым следует название модуля. Например, чтобы импортировать модуль NumPy, необходимо написать import numpy. После этого можно использовать функции и классы, которые предоставляет модуль. Важно понимать, что если модуль находится в другом каталоге, то его нужно указать полным путем либо добавить путь к нему в переменную окружения PYTHONPATH.

Как использовать функцию numpy.array() для создания массива?

Для создания массива при помощи функции numpy.array() нужно передать ей список значений, из которых будет создан массив. Например, чтобы создать массив из трех чисел 1, 2 и 3, можно написать: a = numpy.array([1, 2, 3]). Также можно создавать многомерные массивы, передавая функции numpy.array() список списков. Например, a = numpy.array([[1, 2], [3, 4]]). Это создаст двумерный массив размером 2×2.

Какие функции pandas нужно использовать для чтения данных из CSV-файла?

Для чтения данных из CSV-файла в pandas используется функция pandas.read_csv(). При вызове этой функции можно передать множество параметров, например, sep – разделитель данных, header – номер строки с заголовками столбцов, index_col – номер столбца, который будет использоваться в качестве индекса. Например, чтобы прочитать данные из файла data.csv с запятой в качестве разделителя и используя первый столбец в качестве индекса, нужно написать: data = pandas.read_csv(‘data.csv’, sep=’,’, index_col=0).

Как создать график в Matplotlib?

Для создания графика в Matplotlib необходимо вызвать функции из модуля pyplot, который обычно импортируется с помощью команды import matplotlib.pyplot as plt. Например, чтобы построить график функции y = x^2, можно написать следующий код: x = [1, 2, 3, 4, 5] y = [1, 4, 9, 16, 25] plt.plot(x, y) plt.show(). Это создаст график с осью x, осью y и кривой, соединяющей точки (1, 1), (2,4), (3, 9), (4, 16) и (5, 25).

Как построить гистограмму в Matplotlib?

Для построения гистограммы в Matplotlib можно использовать функцию plt.hist(). Перед этим необходимо создать массив данных, который будет использоваться для построения гистограммы. Например, чтобы построить гистограмму распределения случайных чисел, можно использовать следующий код: data = numpy.random.randn(1000) plt.hist(data, bins=30). Это создаст гистограмму с 30 столбцами, отображающими количество элементов в каждом интервале значения.

Видео:

Python: Пакеты и Модули

Python: Пакеты и Модули by IT4each com 1 year ago 17 minutes 2,747 views

Сервис аналитики Wildberries на Python – Техническое задание – Часть 1 – Модуль съёма позиций

Сервис аналитики Wildberries на Python – Техническое задание – Часть 1 – Модуль съёма позиций by Дмитрий К – Video Experience 1 year ago 12 minutes, 6 seconds 1,755 views

Сообщение Python для Data Science: как использовать встроенные модули и провести импорт данных появились сначала на Программирование на Python.