Архив метки: 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.

Решатель судоку с графическим интерфейсом на Python

Решатель судоку в Python — это упражнение или проект начального уровня для студентов колледжей. Написание кода для решения судоку с использованием языка Python делает его проще и проще.

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

В этой статье рассматривается написание кода на Python для решения головоломки судоку с использованием метода рекурсии. Сначала мы займемся графическим интерфейсом, а затем приступим к решению головоломки.

 

Создание решателя судоку с графическим интерфейсом с использованием языка Python

Мы будем создавать решатель судоку с графическим интерфейсом, используя IDE Jetbrains Pycharm . Поскольку мы создаем впечатляющее решение для судоку с графическим интерфейсом, мы импортируем библиотеку Tkinter. Давайте начнем:

 

Импорт библиотеки и написание кода

Импортируйте все из Tkinter и создайте экземпляр для окна Tkinter. Установите заголовок окна как «Решатель судоку». Теперь задайте размеры окна с помощью метода Geometry. Мы принимаем размеры окон как 324×550 пикселей.

Создайте метку, которая будет указывать на использование программы. Поместите метку в 0-ю строку и первый столбец, используя метод сетки. Установленный диапазон столбца, равный 10, центрирует метку в окне.

Теперь создайте еще одну метку, которая будет использоваться, если головоломка судоку не может быть решена, и инициализируйте ее пустой строкой. Цвет переднего плана для метки ошибки в нашем случае будет красным. Используйте метод Grid, чтобы поместить метку в 15-ю строку и 1-й столбец, диапазон столбцов до 10 и отступы до 5.

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

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

Блок кода:

from tkinter import *

root = Tk()

root.title("Решатель судоку")

root.geometry("324x550")



label = Label(root, text="Заполните цифры и нажмите кнопку решить").grid(row=0, column=1, columnspa=1)



errLabel = Label(root, text="", fg="red") errLabel.grid(row=15, column=1, columnspan=10, pady=5)



solvedLabel = Label(root, text="", fg="green")

solvedLabel.grid(row=15, column=1, columnspan=10, pady=5)

Напишите функцию проверки

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

Блок кода:

cells = {}

def ValidateNumber(P):

out = (P.isdigit() or P == "") and len(P) < 2

return out

Регистрация функции и написание другой функции для разделения судоку на сетки 3×3

Зарегистрируйте функцию в окне, используя метод корневой регистрации. Разделите сетку судоку 9 × 9 на более мелкие фрагменты 3 × 3, написав функцию. Это примет номер строки, номер столбца и цвет фона в качестве аргумента.

Используйте цикл for с диапазоном из трех, который будет указывать строки. Используйте другой цикл for внутри него, чтобы указать столбцы. Теперь создайте виджет ввода шириной 5, bg в качестве цвета фона, а по центру выровняйте текст с помощью Justify. Кроме того, подтвердите клавишу, чтобы подтвердить функцию при нажатии клавиши.

Подтвердите команду кортежем зарегистрированной функции и кода подстановки %P, который передаст новое значение в функцию при изменении. Поместите виджет на сумму номера строки как i+1 строку и сумму номера столбца как j+1. Вы можете установить прилипание к новому, что сделает его липким со всех сторон. Установите для padx и pady значение 1, а для внутреннего заполнения значение 5.

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

Блок кода:

reg = root.register(ValidateNumber)

defdraw3x3Grid(row, column, bgcolor):

for i in range(3):

forj in range(3):

e = Entry(root, width=5, bg=bgcolor, justify="center", validate="key", validatecommand=(reg,"%P"))



e.grid(row=row+i+1, column=column+j+1, sticky="nsew", padx=1, pady=1, ipady=5) 

cells[(row+i+1, column+j+1)] = e

Напишите функцию для рисования сетки 9 × 9

Мы напишем функцию для создания сетки 9×9. Мы использовали двухцветную комбинацию для этой сетки. Первый цвет означает значение. Используйте цикл for в диапазоне 1, 10 и размер шага 3 для строки №. Используйте другой цикл for внутри с диапазоном 0, 9 с размером шага 3.

Теперь вызовите функцию 3×3 и передайте номер строки, номер столбца и цвет. Чтобы чередовать цвета, используйте условие if. Если значением переменной цвета является первый цвет, мы установим его на второй цвет. В противном случае мы установим его на первый цвет. При написании цветовых кодов следите за регистром букв.

Блок кода:

def draw9x9Grid():

color = "#D0MT"

for rowNo in range(1, 10, 3):

for colNo in range(0, 9, 3):

draw3x3Grid(rowNo, colNo, color)

if color == "#Doffff":

color = "#ffffd0"

else:

color = "#Doffff"

 

Напишите функцию для очистки судоку

Мы напишем функцию очистки значений для судоку, которая очистит значения в каждой ячейке сетки. Во-первых, удалите ошибки и метки успеха. Опять же, повторите строки и столбцы. Диапазон для строки будет 2, 11, а диапазон для столбцов будет 1, 10.

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

Блок кода:

defclearValues():

errLabel.configure(text="")

solvedLabel.configure(text="")

for row in range(2, 11):

for col in range(1, 10):

cell = cells[(row, col)]

cell.delete(0, "end")

 

Напишите функцию для получения ввода от пользователя

Напишите функцию получения значений и объявите пустой список для хранения значений для каждой ячейки для каждой строки. Снова очистите все метки, чтобы очистить текст, если он есть. Используйте цикл for для перебора диапазона 2, 11 для строк и 1, 10 для столбцов. Теперь получите значение ячеек, используя метод get виджетов ввода. Если значение представляет собой пустую строку, мы добавим 0 к списку строк. В противном случае добавьте в список целочисленное значение.

После окончания цикла добавьте список строк в список доски.

Блок кода:

defgetValues():

board = []

errLabel.configure(text="")

solvedLabel.configure(text="")

for row in range(2, 11):

rows = []

for col in range(1, 10):

val = cells[(row, col)].get()

if val = ""

rows. append(0)

else:

rows.append(int(val))

board.append(rows)

 

Написание кода для кнопок

Используя виджет кнопки, создайте кнопку. Установите команду для получения значений, текста для решения и ширины на 10. Теперь поместите кнопку в 20-ю строку и первый столбец с диапазоном столбцов 5, как 20.

Создайте еще одну кнопку, скопировав тот же код, установите ее команду на очистку значений и текст на очистку. Поместите эту кнопку в 5-й столбец.

Блок кода:

btn = Button(root, command=getValues, text="Solve", width=10)

btn.grid(row=20, column=1, columnspan=5, pady=20)



btn = Button(root, command=clearValues, text="Clear", width=10)

btn.grid(row=20, column=1, columnspan=5, pady=20)

 

Вызов функций

Вызовите функции сетки 9×9 и метод основного цикла root, чтобы запустить экземпляр нашего созданного окна.

draw9x9Grid()

root.mainloop()

 

Написание кода

Сначала мы объявим переменную, которая будет содержать количество строк и столбцов. Напишите вопрос, который будет проверять данное число для данной строки или столбца. Это примет судоку, номер строки, номер столбца и номер в качестве аргументов. Чтобы проверить, существует ли такое же число в той же строке, мы будем использовать цикл for в диапазоне 9. Условие цикла for выглядит следующим образом: если номер данной строки и i-го столбца равен num, мы вернемся ЛОЖЬ.

Точно так же мы проверим, существует ли такое же число в том же столбце. Используйте цикл for в диапазоне 9. Если номер данного столбца и j-й строки равен num, мы вернем false.

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

Используйте два вложенных цикла в диапазоне от трех. Если число в начальной строке плюс i-я строка и начальный столбец плюс j-й столбец равны num, мы вернем False. В конце функции мы вернем True, которая будет выполнена, если ни одно из предыдущих условий не будет выполнено.

Блок кода:

N = 9



defisSafe(sudoku, row, col, num):

for i in range(9):

ifsudoku[row][i] - num:

return False



for i in range(9):

ifsudoku[i][col] == num:

return False



startRow = row - row % 3

startCol = col - col % 3

for i in range(3):

for j in range(3):

ifsudoku[startRow + i][startCol + j] =num:

return False

return Truc

 

Напишите функцию для присвоения значений не назначенным местоположениям

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

Давайте проверим, равна ли строка N-1, а столбец равен n. Если условие преобладает, мы вернем true. Это условие будет базовым, так как мы будем использовать рекурсию для решения головоломки. После того, как последний столбец будет достигнут, мы перейдем к следующему столбцу. Если столбец равен n, мы добавим единицу к строке и установим столбец обратно в ноль. Теперь мы проверим, присвоен ли номер текущему местоположению.

Если число в данной строке и столбце больше нуля, мы вернем функцию решения судоку для следующего столбца. Используйте цикл for в диапазоне 1, N+1 для проверки каждого числа от 1 до 9.

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

В блоке кода циклов мы переназначим 0, поскольку наше предположение было неверным, и оно подтверждает следующее значение. Верните false в конце блока кода функций.

Блок кода:

startCol = col - col % 3 

for i in range(3):

for j in range(3):

if sudoku[startRow + i][startCol + j] == num:

return False

return True







defsolveSudoku(sudoku, row, col):

ifrow== N - 1 and col == N:

return True



ifcol == N: 

row += l 

col = 0



ifsudoku[row][col] > 0:

return solveSudoku(sudoku, row, col + 1)

for num in range(1, N + 1):

if isSafe(sudoku, row, col, num):

sudoku[row][col] = num



if solveSudoku(sudoku, row, col + 1):

return True



sudoku[row][col] = 0

return False

 

Напишите функцию для решенной судоку

Мы напишем функцию, которая будет возвращать решенную судоку, если она разрешима. Это примет судоку в качестве аргумента. Чтобы узнать, разрешима ли судоку, используйте условие if. Мы вернем судоку, если это разрешимо. В противном случае мы вернем No.

Сохраните этот файл как Solver.py в той же папке, где вы сохранили файл GUI.

Блок кода:

det solver(sudoku):

if solveSudoku(sudoku, 0, 0):

return sudoku

else:

return "no"

 

Импорт функции решения в файл GUI

Откройте файл GUI и импортируйте функцию решения из файла Solver.py. Напишите функцию обновления значений, которая будет обновлять ячейки и отображать решение судоку. В качестве аргумента будет использоваться матрица судоку.

Вызовите функцию решения и передайте ей судоку. Если решение не равно NO, используйте цикл for в диапазоне 2, 11. Внутри цикла for используйте другой цикл for с диапазоном 1, 10. Удалите существующие значения из ячейки. Используйте метод вставки, чтобы вставить значение в 0-й индекс.

Значением будет число строк минус вторая строка и столбец минус первый столбец. Вычитаем 2 и 1 соответственно, так как матрица нулевая.

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

from tkinter import * 

from solver import solve 

root = Tk() 

root.title("Решатель судоку") 

root.geometry("324x550")

 

Вызов значений обновления

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

На данный момент наша окончательная программа готова к выполнению.

 

Вывод

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

Этот пост разделен на части для удобства сопровождения кода. Надеюсь, вам понравилось читать эту статью.



2022-04-22T16:08:31
Python

Python. NumPy pad()

В этой статье будет рассмотрена NumPy pad(). Мы также рассмотрим его синтаксис и аргументы для лучшего понимания. Затем на нескольких примерах мы покажем, как все элементы теории применяются на практике. Но сначала давайте посмотрим на определение функции, чтобы лучше понять ее.

 

Определение NumPy и его синтаксис

Как мы все знаем, NumPy — это мощный математический пакет Python. Он включает в себя функцию под названием NumPy pad(), которая добавляет отступы к массивам. По мере продвижения по тексту определение, которое мы только что обсуждали, станет более ясным. Синтаксис, относящийся к этой функции, будет рассмотрен в прилагаемом разделе.

# numpy.pad(array, pad_width, mode='')

 

Общий синтаксис нашей функции показан выше. Существуют различные критерии, которые сопровождают это, и мы рассмотрим их сегодня. Параметр «array» указывает входной массив, к которому должно быть применено заполнение. Количество значений, добавленных к краю каждой оси, представлено аргументом «pad_width».

«mode» — это параметр. Он может представлять собой одно из приведенных ниже строковых значений или предоставленную пользователем функцию.

  • constant: при использовании этой опции заполнение выполняется с постоянным значением.
  • edge: в этой ситуации заполнение выполняется значением края массива.
  • maximum: когда выбран этот параметр, заполнение рассчитывается путем сложения наибольшего значения всех частей вектора вдоль указанной оси.
  • mean: заполнение в этой ситуации использует среднее значение всех секций вектора вдоль указанной оси.
  • median: когда выбран этот параметр, заполнение использует наибольшее значение из всех частей вектора вдоль предоставленной оси.
  • reflect: в этом случае вектор дополняется путем отражения его между начальным и последним значениями по каждой оси.

‘maximum,” mean,”median,’ и ‘minimum’ используют аргумент длины «stat». Статистическое значение рассчитывается с использованием количества значений на краю каждой оси.

В «constant» используется параметр «constant values». Значения используются для заполнения значений для каждой оси здесь.

 

Пример 1:

Мы рассмотрим, как работает этот метод и как он помогает нам достичь желаемого результата в этой части, когда мы рассмотрели всю теорию, лежащую в основе NumPy pad(). Мы начнем с простого экземпляра и перейдем к более сложным. Мы рассмотрим, как работает функция клавиатуры NumPy, в нашем первом примере.

Во-первых, мы импортировали модуль NumPy в пример программы ниже. После этого мы определили вход (обозначенный как abc), на котором должна быть выполнена операция. Затем мы использовали наш синтаксис, чтобы получить желаемый результат.

В этом примере мы выбрали «maximum» в качестве нашего режима. В результате передняя и задняя части дополняются максимум до 32 (максимальное значение). Ниже приведена реализация, как вы можете видеть.

import numpy as ppool

abc=[2,32,7,8]

print(ppool.pad(abc,(2,3),"maximum"))

 

Вот результат, где вы можете увидеть максимальное значение в начале и в конце массива.

[32 32 2 32 7 8 32 32 32]

 

Пример 2:

Давайте посмотрим на другой пример, используя другой режим. Вторая иллюстрация, похожая на первую. Однако в данном случае мы использовали другой массив. Кроме того, мы выбрали «reflect» в качестве режима наблюдения. Можно увидеть изменение выхода.

import numpy as p

abc=[12,33,22,37,60,80,2]

print(p.pad(abc,(5,1),"reflect"))

 

Вот результирующий экран приведенного выше кода.

[80 60 37 22 33 12 33 22 37 60 80 2 80]

 

Пример 3:

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

Опция режима определяет тип значения, которое будет использоваться для заполнения массива. Мы используем постоянные значения 1 и 5 для заполнения массива в нашем коде, но мы можем изменить этот режим на медианный, средний, пустой, перенос и т. д. Каждый режим добавляет новый элемент в массив, чтобы дополнить его.

import numpy as p

one = [2,4,6,8]

two = p.pad(one,(3, 2), mode =  'constant', constant_values = (1, 5))

print(two)

 

Ниже приведен экран вывода для вашей помощи.

[1 1 1 2 4 6 8 5 5]

 

Пример 4:

В этом случае мы импортировали NumPy с псевдонимом «pp» в приведенном выше коде. Используя вектор, ширину площадки, ось и kwargs, мы разработали метод pad. Чтобы получить значения заполнения из предоставленной функции get(), мы объявили значение переменной padding.

Значения заполнения были предоставлены части вектора.

Мы использовали функцию np.arange() для построения массива «one» и функцию reshape() для изменения его формы. Результирующее значение функции np.pad() было присвоено переменной ‘two’. Функция предоставила список «один» и параметр ширины pad. Наконец, мы попытались напечатать значение «two».

import numpy as pp

def pad_with(vector, pad width, iaxis, kwargs):

         padding_val = kwargs.get('padder', 5)

         vector[:pad_width[0]] = padding_val

         vector[-pad_width[1]:] = padding_val

one = pp. arange(6)

one = one.reshape((3, 2))

two = pp. pad(one, 2, pad_with)

print(two)


Результирующий экран показывает ndarray, дополненный определенным размером и значениями в выходных данных.

[[5 5 5 5 5 5]

 [5 5 5 5 5 5]

 [5 5 0 1 5 5]

 [5 5 2 3 5 5]

 [5 5 4 5 5 5]

 [5 5 5 5 5 5]

 [5 5 5 5 5 5]]

 

Заключение

Pad() — очень важная функция для специфического кодирования, она стала часто используемой функцией в Python. Функция позволяет изменять массив, чтобы ограничить количество конфликтов системы памяти. Функция numpy.pad() широко используется для полной функциональности AST. Эта функция, в частности, позволяет пользователю указать новый размер или даже позволить системе автоматически рассчитать размер для них.

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



2022-03-12T15:06:48
Python

Базовое имя Python

Python предоставляет различные методы взаимодействия с операционной системой для управления именами файлов и именами каталогов через модуль os. В этой статье обсуждается один из встроенных методов Python, используемых для получения базового имени файла по заданному пути: метод os.path.basename(), который позволяет нам извлечь имя файла из указанного пути.

Мы должны использовать os.path.basename() в коде, импортируя модуль os. Этот метод os.path.basename() дополнительно использует функцию split() для разделения строки пути на пару, которая будет возвращать начало и конец. Головная часть предназначена для имени каталога, а хвостовая часть возвращается методом os.path.basename(). Давайте подробнее об этом методе.

 

Синтаксис базового имени Python:

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

Os.path.basename(path)

 

Os.path — это подрежим модуля os для манипулирования именами путей. Итак, сначала нам нужно импортировать модуль os для этого метода базового имени.

 

Параметр передается в базовом имени python:

Этот метод os.path.name() принимает только указанную строку пути, представляющую путь к файловой системе.

 

Возвращаемое значение в базовом имени python:

os.path.basename() вернет значение в строке заданного пути, которое является базовым именем файла. Теперь у нас будет простой пример реализации того, как работает этот метод os.path.basename().

 

Пример 1:

В Windows и Unix у нас есть разные форматы для извлечения базового имени файла с указанным путем, поэтому в этом примере мы собираемся извлечь базовое имя с синтаксисом окна и синтаксисом Unix. Сначала у нас есть пример окна.

В окне используется разделитель с обратной косой чертой ‘’; мы можем проверить или подтвердить этот разделитель с помощью метода os.path.sep(). Переменная «file_dir» имеет путь «UsersabcDownloadsMy Window», который является именем каталога файла, а «file_name» имеет путь, заданный «UsersabcDownloadsMy Windowindex.html». Обе переменные возвращают базовое имя файла с синтаксисом Window. Мы также будем печатать разделитель окон с помощью метода os.path.sep().

import os.path



file_dir = os.path.basename("UsersabcDownloadsMy Window")



print(file_dir)



file_name = os.path.basename("UsersabcDownloadsMy Windowindex.html")



print(file_name)



print(os.path.sep)

 

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

Теперь у нас есть разделитель Unix, используемый в этом примере ниже. Unix использует косую черту ‘/’ в качестве разделителя пути. Мы можем получить этот разделитель, напечатав метод os.path.sep().

import os.path



file_dir = os.path.basename("/Downloads/ My Unix")



print(file_dir)



file_name = os.path.basename("/Downloads/ My Unix /unix.txt")



print(file_name)

 

Пример 2:

Давайте рассмотрим пример извлечения имени файла с помощью метода os.path.basename(). Мы импортировали os.path для доступа к методу os.path.basename() в этом конкретном примере. У нас есть «базовое имя», которое вернет базовое имя файла, которое мы назначили в os.path.basename. С оператором print() у нас будет базовое имя.

import os.path



basename = os.path.basename("/home/example/exampleFile.txt")



print(basename)

 

Здесь у нас есть «/home/example/» в качестве имени пути и «exampleFile.txt» в качестве базового имени.

 

Пример 3:

В этом примере мы найдем базовое имя каталога или имени папки. Имя папки или каталога также имеет базовое имя в полном пути. В этом примере у нас есть «Документы» в качестве базового имени из пути «/home/MyDocuments/Documents», который передается в os.path.basename(). Переменная ‘basename’ вернет вывод, который вызывается в функции print().

import os.path



basename = os.path.basename("/home/MyDocuments/Documents")



print(basename)

 

Мы получим «Документы» в качестве базового имени из приведенного выше кода.

 

Пример 4:

Чтобы получить базовое имя из URL-адреса, нам нужно импортировать библиотеку из модуля стандартного пакета urllib, который называется urlparse. Это поможет нам разделить строки URL на компоненты или снова объединить строку URL в компоненты.

В этом примере будет получено базовое имя URL-адреса для формирования переменной «URL», которая имеет строковый URL-адрес «https://docs.python.org/3/download.html». URL-адрес передается в метод urlparse() в качестве аргумента, который разделит URL-адрес на части. Этот анализ URL-адреса хранится в новой переменной «x», которая будет отображать строку разделенного пути URL-адреса. На этот раз мы используем os.path.basename() через оператор печати.

import os



from urllib.parse import urlparse



url = "https://docs.python.org/3/download.html"



x = urlparse(url)



print(x.path)



print(os.path.basename(x.path))

 

Отображение разделенной строки URL-адреса и базового имени из URL-адреса.

 

Пример 5:

В этом примере используется метод os.path.split() для возврата пары «голова» и «хвост» по отдельности. Для этого мы должны передать указанный путь в качестве аргумента в метод os.path.split(). Мы получим «голову» и «хвост» отдельно через оператор печати.

import os



path = "/Users/Desktop/Article/python/code.py"



head_tail = os.path.split(path)



print(head_tail)

 

Вы можете увидеть вывод этого кода, поскольку он показывает головную часть и хвостовую часть по отдельности.

 

Пример 6:

Мы извлекли базовое имя и расширение, определенные в этом примере. Мы будем извлекать имя файла без расширения с помощью другого метода os.path.splitext(). Этот метод даст только базовое имя, определенное в os.path.basename().

Мы назначили путь как «home/example/example3.txt» в переменной «basename». Используйте индекс как «0», чтобы получить базовое имя без расширения.

import os.path



path_name="home/example/example3.txt"



basename = os.path.splitext(os.path.basename(path_name))[0]



print(basename)




 

У нас есть вывод basename как «example3» без расширения на экране консоли.

 

Заключение

В этой статье мы рассмотрели все возможные способы получения базового имени по указанному пути. Кроме того, мы продемонстрировали получение базового имени в Windows и Unix с разными разделителями. Теперь, надеюсь, эта функция даст вам четкое понимание.



2022-03-10T17:23:26
Python

Python. встроенный If-Else

Язык программирования Python удобен для чтения и эффективен при написании операций. В этой статье обсуждаются встроенные условные операторы if-else. В Python нет тернарного оператора, поэтому мы используем if-else в одной строке, что имеет тот же эффект, что и тернарный оператор. Это условие оценивает условия в состоянии истинности или ложности.

Как встроенные операторы if-else — это логические операторы, которые предлагают одну строку, которая сохраняет качество кода, заменяя несколько строк кода if-else. Встроенные операторы if-else следует использовать с выражениями и их выполнением на основе условий оценки.

 

Синтаксис встроенного if-else в Python

Чтобы написать встроенный оператор if-else, мы должны следовать этому синтаксису.

<expression1> if <condition> else <expression2>

 

В этом синтаксисе <expression1> будет возвращено или выполнено, если условие истинно, иначе будет возвращено или выполнено <expression2>, и эти условия всегда выполняются слева направо.

 

IndentationError во встроенном if-else

Python использует отступы, чтобы различать, какие строки кода соответствуют другим. Потому что файл Python может содержать несколько определений функций. Функция должна иметь одну строку кода, чтобы быть допустимой. Это также означает, что даже если условие истинно, должна быть выполнена хотя бы одна строка кода; в противном случае возникает исключение IndentationError с сообщением «ожидается намеренный блок».

 

Пример 1:

Давайте начнем с простого примера того, как работает это встроенное if-else. Помните, что условия оцениваются слева направо. Здесь мы определяем переменную «a» равной «5», а a_output имеет условие if-else, которое мы передаем функции print() для отображения вывода. Встроенное условие if-else здесь вернуло «20», если переменная «a» равна «20», иначе вернуло «10».

a = 5



a_output = "20" if  a==20 else "10"



print(a_output)

 

Итак, у нас есть «а» равно «5», поэтому условие ложно, и мы получаем 10 после выполнения этого кода.

 

Пример 2:

В этом примере у нас есть две переменные во встроенном операторе as. В коде мы определяем переменную как «x» и присваиваем значение «20». Кроме того, у нас есть еще одна переменная, поскольку «y» равно «10». Таким образом, условие «y» равно «10», если «x» меньше «20», иначе будет напечатан «0». Что ж, передайте «x» через условие, поэтому слева направо, если «x» меньше «20», ответ будет «нет», поэтому мы ожидаем, что «y» будет «0». Давайте запустим пример и посмотрим на значение ‘y’.

x=20



y=10  if x<20 else '0'



print(y)

 

Здесь «у» равен «0», потому что условие ложно, так как «х» не меньше «20», он равен «20».

Из приведенного выше кода мы получили значение «y» как «0». Теперь, что, если «x» меньше «20», взяв значение «x» как «19». Мы ожидали, что «y» будет «10». Мы можем увидеть значение «y», напечатав значение.

x=19



y=10  if x<20 else '0'



print(y)

 

Поскольку у нас есть выходное значение «y» равное 10, условие истинно, поскольку «x» меньше «20».

 

Пример 3:

В этом конкретном примере у нас есть код строки. Присвоив значение «красный» переменной «цветок» и применив встроенное условие if-else, которое печатает «Цветок белый», если переменная «цветок» равна «белому», иначе будет напечатано выражение «цветок не белый». .

flower='red'



print("Цветок белый" if flower == 'white' else "Цветок не белый")

 

Значение цветка красное; в результате условие не выполняется, и реализуется оператор в другой части. Вы можете увидеть вывод ниже, который печатает «Цветок не белый».

 

Пример 4:

Все примеры представляют собой просто встроенные условия if-else, но сейчас мы обсудим вложенные условия if-else. Мы берем пример одобрения автомобильных прав для людей, имеющих возраст, равный 18 или старше 18 лет.

У нас есть переменная «age», которая принимает данные от пользователя. В условном встроенном заявлении будет напечатано «вы не имеете права подавать заявку», если возраст младше 16 лет. Если возраст составляет от 16 до 18, будет напечатано «нужно подождать, пока вам исполнится 18+»; в противном случае будет показано «вы имеете право подать заявку».

age = int(input("Введите ваш возраст = "))



message= 'Вы не имеете права подавать заявку' if age<16 else 'вам нужно подождать, чтобы вам исполнилось 18+' if 16<age<=18 else 'вы имеете право подать заявку'



print(message)

 

Вывод этого кода показывает сообщение «Вы не имеете права подавать заявку», поскольку пользователь вводит возраст 15 лет, что меньше 16 лет.

Теперь, когда пользователи вводят возраст 17 лет, мы печатаем «вам нужно подождать, чтобы вам исполнилось 18+», поскольку возраст составляет от 16 до 18.

На экране консоли было напечатано «вы имеете право подать заявку», поскольку возраст старше 18 лет.

 

Пример 5:

Это пример чрезвычайно очевидного случая в реальном времени, когда мы должны оценить несколько условий. Здесь мы должны выделить оценку из набранных баллов; мы определяем переменную «AndreyEx» и инициализируем ее значением «80».

Условие хранится в переменной с именем «Результат», которая будет печатать оценки от «А» до «Неудачно» при выполнении. На этот раз оценки выше 90, поэтому ожидается, что на выходе будет A+. Давайте запустим этот код, чтобы увидеть, каков результат этого кода.

AndreyEx = 95



Result = 'Grade = A+' if AndreyEx > 90 else 'Grade = A' if AndreyEx > 80 else 'Grade = B' if AndreyEx >70 else 'Grade = C' if AndreyEx >60 else 'Grade = D' if  AndreyEx > 40 else 'Fail'



print(Result)




Оценка A+ выводится на экран консоли.

 

Заключение

Мы подробно рассмотрели встроенные if-else в python с несколькими допустимыми примерами с помощью терминала Spyder. Встроенный if-else имеет гораздо более короткий и аккуратный код, который понятен и прост в использовании. Надеюсь, это поможет вам понять фундаментальную концепцию встроенных операторов if-else.



2022-03-07T20:29:58
Python

Изучаем pandas

Изучаем pandas

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

Скачать с mail облака

2022-03-03T09:17:11Книги и Курсы