Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Пройдите все испытания в игре кальмара второго сезона

Игра в кальмара 2: новые испытания

Аркады, Казуальные, Для мальчиков

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Jupyter notebook

5 постов сначала свежее
8
hypo69
hypo69
6 месяцев назад
Программирование на python
Серия 101 игра на python. Информатика

101 игра на python. Информатика. Работа с файловой системой Google colab⁠⁠

Что такое Google Colab?

101 игра на python. Информатика. Работа с файловой системой Google colab Гайд, Программирование, Jupyter notebook, Python, Длиннопост

Посмотреть код можно в Google Colab

Google Colab — это облачная платформа, созданная Google, для работы с интерактивными блокнотами Jupyter Notebook. Она предоставляет мощные инструменты для написания и выполнения кода на Python, анализа данных, обучения моделей машинного обучения и совместной работы над проектами.

Colab предлагает доступ к мощным ресурсам, включая графические и тензорные процессоры. Это позволяет решать сложные задачи, такие как работа с большими объёмами данных или обучение нейросетей, без покупки дорогого оборудования. Colab работает на основе Jupyter Notebook. Использовать Colab можно сразу после открытия — ничего дополнительно устанавливать не нужно, всё уже готово к работе. Ты можешь подключить Google Диск, чтобы легко данные, сохранять проекты и получать доступ к файлам откуда угодно. Также в Colab можно работать вместе с другими пользователями.

Как работает Google Colab?

- Jupyter запускается в браузере. Код выполняется на удаленных серверах Google, а результаты отображаются в блокноте. Данные могут загружаться из локального устройства или из облака, такого как Google Drive. Ты можете использовать Colab для работы с библиотеками для машинного обучения (например, TensorFlow, PyTorch), анализа данных с использованием Pandas или создания визуализаций через Matplotlib и Seaborn.

Как выглядит Google Colab?

101 игра на python. Информатика. Работа с файловой системой Google colab Гайд, Программирование, Jupyter notebook, Python, Длиннопост

Интерфейс Colab состоит из нескольких основных частей:

  • Строки кода: Это ячейки, в которые ты будешь писать и выполнять свой код на Python.

  • Текстовые ячейки: Здесь ты можешь добавлять описания, пояснения и заметки к своему коду.

  • Меню: Сверху есть меню с различными опциями для работы с блокнотом (файл, правка, вид, инструменты и т.д.).

  • Файловый менеджер: Слева есть панель файлового менеджера, где ты можешь просматривать файлы и папки в своей среде Colab.

Файловая система colab

В Google Colab, ты работаешь в облачной среде, где файловая система организована как на обычном компьютере с папками и файлами. Ты можешь взаимодействовать с файловой системой с помощью магических команд Jupyter (начинаются с `%`) и команд bash (начинаются с `!`).

Список основных команд:

  1. %pwd (print working directory):

    • Описание: Показывает текущую рабочую директорию (где ты сейчас "находишься" в файловой системе).

    • Пример: %pwd

    • Результат: /content (или другая текущая директория)

  2. %ls (list):

    • Описание: Выводит список файлов и папок в текущей директории.

    • Пример: %ls

    • Результат: Список файлов и папок, например: sample_data/ my_file.txt

  3. %cd <путь> (change directory):

    • Описание: Переходит в указанную директорию.

    • Пример: %cd sample_data

    • Результат: Текущая рабочая директория меняется на /content/sample_data

  4. !head -<количество строк> <имя файла>:

    • Описание: Выводит первые несколько строк указанного текстового файла.

    • Пример: !head -5 README.md

    • Результат: Первые 5 строк файла README.md.

  5. !cat <имя файла>:

    • Описание: Выводит содержимое указанного текстового файла.

    • Пример: !cat sample_file.txt

    • Результат: Всё содержимое файла sample_file.txt.

  6. !echo "<текст>" > <имя файла> * Описание: Создаёт новый файл с указанным именем и записывает в него текст. Если файл уже существует, он будет перезаписан * Пример: !echo "Это мой новый файл!" > new_file.txt * Результат: Создаёт файл new_file.txt с содержимым Это мой новый файл!.

Ключевые моменты:

  • Магические команды (%) - это специальные команды Jupyter для работы с окружением Colab.

  • Команды bash (!) - это команды, которые выполняются в командной строке Linux.

  • Путь к файлу: Путь к файлу указывает, где именно файл находится в файловой системе (например, /content/sample_data/my_file.txt).

  • Текущая директория: Твоё положение в файловой системе (изменяется командой %cd).

Посмотреть в Google colab

Загрузка файлов в Google Colab

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

  1. Загрузка через файловый менеджер (GUI)

  • Описание: Самый простой способ загрузить файлы, особенно небольшие, – использовать графический интерфейс файлового менеджера Colab.

  • Как это сделать:

    1. Открой панель файлового менеджера слева (значок папки).

    2. Нажми на значок загрузки (обычно это значок с плюсом или стрелкой вверх).

    3. В открывшемся окне выбери файлы на своем компьютере, которые ты хочешь загрузить.

    4. Нажми "Открыть" или "Загрузить".

  • Плюсы: Простота, наглядность, не требует написания кода.

  • Минусы: Подходит для небольших файлов, нужно делать вручную.

101 игра на python. Информатика. Работа с файловой системой Google colab Гайд, Программирование, Jupyter notebook, Python, Длиннопост

2. Загрузка через код Python (google.colab.files.upload())

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

  • Как это сделать:

    1. Импортируй модуль files из библиотеки google.colab.

    from google.colab import files

    1. Вызови функцию files.upload()

      uploaded = files.upload()

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

  • После выполнения этого кода загруженные файлы будут доступны в виде словаря uploaded, где ключи – имена файлов, а значения – их содержимое в виде байтовых строк.

3. Клонирование репозитория GitHub (git clone)

  • Если твои файлы находятся в репозитории GitHub, ты можешь загрузить их, клонировав репозиторий в Colab.

  • Как это сделать:

    1. Используй команду git clone с URL репозитория.

      !git clone <URL_репозитория>

      Например:

    !git clone https://github.com/username/my_repository.git

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

  • Плюсы: Легко загрузить все файлы из репозитория, удобный способ для проектов с контролем версий.

  • Минусы: Подходит только для файлов в репозиториях GitHub.

4. Скачивание отдельного файла с GitHub

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

  • Как это сделать:

    1. Открой нужный файл в репозитории GitHub.

    2. Нажми на кнопку "View raw" (или "Необработанный вид").

    3. Скопируй URL этого файла. 4. Используй wget или curl для скачивания файла.

    !wget <URL_файла>

    или python !curl <URL_файла> -o <имя_файла_в_colab>

  • Плюсы: Просто скачать только нужные файлы, без клонирования всего репозитория.

  • Минусы: Требуется знать прямую ссылку на файл.

Какой способ выбрать?

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

  • Если нужно программно обрабатывать загруженные файлы, используй files.upload().

  • Для загрузки целых проектов, используй git clone.

  • Для скачивания отдельных файлов, используй wget или curl

Посмотреть код можно в Google Colab

UPD:

ИСХОДНЫЙ КОД ПЕРЕЕХАЛ ПО ЭТОМУ АДРЕСУ

Показать полностью 2
Гайд Программирование Jupyter notebook Python Длиннопост
3
2
hypo69
hypo69
9 месяцев назад
Программирование на python

10 минут кода: Расширяем возможности `pprint()`⁠⁠

Привет!  Я покажу о свою реализацию функции pprint(). Это простая функция, которая помогает сделать вывод данных в консоль более читаемым. Когда у тебя есть сложные структуры, например, большие словари, списки или объекты pprint() «красиво» выводит их на экран. Функция также выводит на экран N строк текстовых файлов

pprint(dict)

pprint(list)

pprint(Object)

pprint('text.txt', max_lines=10)

и получить данные в «читабельном» виде.

сразу код функции:


import json

import csv

import pandas as pd

from pathlib import Path

from typing import Any

from pprint import pprint as pretty_print


def pprint(print_data: str | list | dict | Path | Any = None, depth: int = 4, max_lines: int = 10, *args, **kwargs) -> None:

""" Pretty prints the given data in a formatted way.


The function handles various data types and structures such as strings, dictionaries, lists, objects, and file paths.

It also supports reading and displaying data from CSV and XLS/XLSX files.


Args:

print_data (str | list | dict | Any, optional): The data to be printed. It can be a string, dictionary, list, object, or file path. Defaults to `None`.

depth (int, optional): The depth to which nested data structures will be printed. Defaults to 4.

max_lines (int, optional): Maximum number of lines to print from a file (CSV/XLS). Defaults to 10.

*args: Additional positional arguments passed to the print or pretty_print function.

**kwargs: Additional keyword arguments passed to the print or pretty_print function.


Returns:

None: The function prints the formatted output and does not return any value.


Example:

>>> pprint("/path/to/file.csv", max_lines=5)

>>> pprint("/path/to/file.xls", max_lines=3)

"""

if not print_data:

return


def _read_text_file(file_path: str | Path, max_lines: int) -> list | None:

"""Reads the content of a text file up to `max_lines` lines."""

path = Path(file_path)

if path.is_file():

try:

with path.open("r", encoding="utf-8") as file:

return [file.readline().strip() for _ in range(max_lines)]

except Exception as ex:

pretty_print(print_data)

return None


def _print_class_info(instance: Any, *args, **kwargs) -> None:

"""Prints class information including class name, methods, and properties."""

class_name = instance.__class__.__name__

class_bases = instance.__class__.__bases__


print(f"Class: {class_name}", *args, **kwargs)

if class_bases:

print([base.__name__ for base in class_bases], *args, **kwargs)


attributes_and_methods = dir(instance)

methods = []

properties = []


for attr in attributes_and_methods:

if not attr.startswith('__'):

try:

value = getattr(instance, attr)

except Exception:

value = "Error getting attribute"

if callable(value):

methods.append(f"{attr}()")

else:

properties.append(f"{attr} = {value}")


pretty_print("Methods:", *args, **kwargs)

for method in sorted(methods):

pretty_print(method, *args, **kwargs)

print("Properties:", *args, **kwargs)

for prop in sorted(properties):

pretty_print(prop, *args, **kwargs)


def _print_csv(file_path: str, max_lines: int) -> None:

"""Prints the first `max_lines` lines from a CSV file."""

try:

with open(file_path, newline='', encoding='utf-8') as csvfile:

reader = csv.reader(csvfile)

header = next(reader)

print(f"CSV Header: {header}")

for i, row in enumerate(reader, start=1):

print(f"Row {i}: {row}")

if i >= max_lines:

break

except Exception as ex:

pretty_print(print_data)


def _print_xls(file_path: str, max_lines: int) -> None:

"""Prints the first `max_lines` rows from an XLS/XLSX file."""

try:

df = pd.read_excel(file_path, nrows=max_lines)

print(df.head(max_lines).to_string(index=False))

except Exception as ex:

pretty_print(print_data)


def json_serializer(obj):

"""Custom handler for unsupported data types in JSON."""

if isinstance(obj, Path):

return str(obj)


# Check if it's a file path

if isinstance(print_data, str):

if Path(print_data).is_file():

file_extension = Path(print_data).suffix.lower()


if file_extension == '.csv':

_print_csv(print_data, max_lines)

elif file_extension in ['.xls', '.xlsx']:

_print_xls(print_data, max_lines)

elif file_extension == '.txt':

content = _read_text_file(print_data, max_lines)

if content:

for line in content:

print(line)

elif file_extension == '.json':

try:

with open(print_data, 'r', encoding='utf-8') as json_file:

json_data = json.load(json_file)

print(json.dumps(json_data, default=json_serializer, indent=4))

except Exception as ex:

pretty_print(print_data)

else:

pretty_print(print_data, *args, **kwargs)

else:

# If the data is not a file, pretty print or handle it as a class

try:

if isinstance(print_data, dict):

print(json.dumps(print_data, default=json_serializer, indent=4))

elif isinstance(print_data, list):

print("[")

for item in print_data:

print(f"\t{item} - {type(item)}")

print("]")

else:

print(print_data, *args, **kwargs)

if hasattr(print_data, '__class__'):

_print_class_info(print_data, *args, **kwargs)

except Exception as ex:

pretty_print(print_data)

код на github

gist

Для запуска и проверки кода я сделал Интерактивный блокнот google colab

Как работает функция:

  1. Печать строковых данных**: Если предоставленный аргумент является строкой, функция проверяет, представляет ли она путь к файлу. Если это так, функция считывает содержимое файла и выводит его. Если строка не является путем к файлу, функция просто выводит строку.

  2. Печать списков**: Если аргумент является списком, функция преобразует все объекты `Path` в списке в строки и использует стандартную функцию `pprint` для форматирования списка.

  3. Печать словарей**: Если аргумент является словарем, функция преобразует все объекты `Path` в строки, чтобы обеспечить корректную сериализацию в JSON. Затем она выводит словарь в формате JSON с отступами для повышения читаемости

  4. Печать объектов**: Если аргумент является объектом, функция использует `pprint`, чтобы вывести объект вместе с дополнительной информацией о его классе, методах и свойствах. Функция выводит имя класса, его базовые классы и перечисляет методы и свойства объекта, упрощая анализ его структуры.

  5. Вывод в консоль произвольное количество сток из тексовых файлов (txt, json,csv,xls)

Примеры.

Все примеры можно запускать в блокноте jupyter notebook https://colab.research.google.com/drive/1uBcZuMabkix2qpNJtNk...
Здеськраткое руководство как пользоваться блокнотом

Пример 1: Строка

pprint("Hello, World!")

Результат:

'Hello, World!'

Пример 2.1: Список

from pathlib import Path

example_list = [

"Hello, World!",

Path("C:/example/path"),

42,

{"key": "value"}

]

example_list_2 = [

"Python is fun!",

Path("/home/user/project"),

99,

{

"name": "Alice",

"age": 30,

"languages": ["Python", "JavaScript", "C++"]

}

]

pprint(example_list)

Результат:

[

Hello, World! - <class 'str'>

C:/example/path - <class 'pathlib.PosixPath'>

42 - <class 'int'> {'key': 'value'} - <class 'dict'>

[1, 2, 3] - <class 'list'>

]

Пример 2.2: Несколько списков

pprint(example_list+example_list_2)

Результат:

[

Hello, World! - <class 'str'>

C:/example/path - <class 'pathlib.PosixPath'>

42 - <class 'int'> {'key': 'value'} - <class 'dict'>

Python is fun! - <class 'str'>

/home/user/project - <class 'pathlib.PosixPath'>

99 - <class 'int'>

{'name': 'Alice', 'age': 30, 'languages': ['Python', 'JavaScript', 'C++']} - <class 'dict'>

]

Пример 3: Словарь

from pathlib import Path

import json

example_dict = {

"name": "Alice",

"age": 30,

"address": {

"street": "123 Main St",

"city": "Wonderland"

},

"files": [Path("C:/file1.txt"), Path("C:/file2.txt")]

}

pprint(example_dict)

Результат:

{

{

"name": "Alice",

"age": 30,

"address":{

"street": "123 Main St",

"city": "Wonderland"

},

"files": [ "C:/file1.txt", "C:/file2.txt" ]

}

Пример 4.1: Объект класса MyClass

class MyClass:

def __init__(self, name, value):

self.name = name

self.value = value

def display(self):

return f"{self.name} has value {self.value}"

# Create an instance of the class

obj = MyClass(name="TestObject", value=100)

# Print object information

pprint(obj)

Результат:

<__main__.MyClass object at 0x797a27f17b50>

Class: MyClass

['object']

'Methods:'

'display()'

Properties:

'name = TestObject'

'value = 100'

Пример 4.2: Объект класса Path

import os

from pathlib import Path

current_path = Path(os.getcwd()).resolve()

pprint(current_path)

Результат:

/content

Class: PosixPath

['Path', 'PurePosixPath']

'Methods:'

...

'absolute()'

'as_posix()'

'as_uri()'

'chmod()'

'cwd()'

'exists()'

'expanduser()'

'glob()'

'group()'

'hardlink_to()'

'home()'

...

Properties:

...

'anchor = /'

'drive = '

'name = content'

'parent = /'

'parents = <PosixPath.parents>'

"parts = ('/', 'content')"

'root = /'

'stem = content'

'suffix = '

'suffixes = []'

Пример 5: печать содержимого файла JSON

import json

from pathlib import Path

dct = {

"имя": "Руслан",

"возраст": 25,

"город": "Москва",

"навыки": ["Python", "Наука о данных"]

}

# Save the dictionary to a JSON file

with open(Path('example_json.json'), 'w', encoding='utf-8') as f:

json.dump(dct, f, ensure_ascii=False, indent=4)

# Pretty print the JSON file

pprint('example_json.json')

Результат:

{

"имя": "Руслан",

"возраст": 25,

"город": "Москва",

"навыки": [ "Python", "Наука о данных" ]

}

Пример 6: печать первых 10 строк из файла ТХТ

from pathlib import Path


s = """1: В лесу родилась ёлочка,

2: В лесу она росла.

3: Зимой и летом стройная,

4: Зелёная была.


5: Метель ей пела песенку:

6: «Спи, ёлочка, бай-бай!»

7: Мороз снежком укутывал:

8: «Смотри, не замерзай!»


9: Трусишка зайка серенький

10: Под ёлочкой скакал.

11: Порою волк, сердитый волк,

12: Рысцою пробегал.


13: Чу! Снег по лесу частому

14: Под полозом скрипит.

15: Лошадка мохноногая

16: Торопится, бежит."""


# Save text file

with open(Path('example_txt.txt'), 'w', encoding='utf-8') as f:

f.write(s)

max_lines=10 # <- количество выводимых на печать строк

# Call pprint with the correct filename

pprint('example_txt.txt', max_lines=max_lines)

Результат:

1: В лесу родилась ёлочка,

2: В лесу она росла.

3: Зимой и летом стройная,

4: Зелёная была.

5: Метель ей пела песенку:

6: «Спи, ёлочка, бай-бай!»

7: Мороз снежком укутывал:

8: «Смотри, не замерзай!»

Пример 7: печать первых двух строк из файла CSV

import csv

from pathlib import Path


# Содержимое example.csv:

csv_data = """имя,возраст,город

Алексей,30,Москва

Борис,25,Санкт-Петербург

Виктор,35,Казань

Дмитрий,28,Новосибирск

Екатерина,22,Екатеринбург

"""

# Создание CSV файла

with open(Path('example.csv'), 'w', encoding='utf-8') as f:

f.write(csv_data)

pprint('example.csv', max_lines=2)

Результат:

CSV Header: ['имя', 'возраст', 'город']

Row 1: ['Алексей', '30', 'Москва']

Row 2: ['Борис', '25', 'Санкт-Петербург']

Пример 8: печать первых трёх строк из файла XLS

import pandas as pd

from pathlib import Path

# Create a sample DataFrame and save it as an Excel file

data = {

"имя": "Руслан",

"возраст": 25,

"город": "Москва",

"навыки": ["Python", "Наука о данных"]

}

df = pd.DataFrame(data)

# Save the DataFrame as an .xlsx file

df.to_excel('example.xlsx', index=False)

# Print the file name using pprint

pprint('example.xlsx', max_lines=3)

Результат:

имя возраст город навыки

Руслан 25 Москва Python

Руслан 25 Москва Наука о данных

Для запуска и проверки кода я сделал Интерактивный блокнот google colab. здесь все наглядно с примерами

Показать полностью
[моё] Программа Гайд Программирование Python Junior Утилиты Для начинающих Инструкция Jupyter notebook Длиннопост
16
SnitkinAlive
SnitkinAlive
1 год назад

Из жизни студента-айтишника⁠⁠

Из жизни студента-айтишника
[моё] Jupyter notebook Python Учёба в университете Программирование IT Айтишники Студенты Картинка с текстом
1
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

Точно не скажем, но в нашем проекте с этим можно справиться буквально за минуту одной левой!

Попробовать

Ремонт Теплый пол Текст
DELETED
6 лет назад

Закорючка⁠⁠

Закорючка Закорючки, Python, Jupyter notebook, Гифка

Вот такую закорючку можно на пять минут создать в среде jupyter notebook. Сделал я это, пока тренировалась сетка :). А для интересующихся код:

Закорючка Закорючки, Python, Jupyter notebook, Гифка
import matplotlib.pyplot as plt
from IPython.display import clear_output

for i in range(2, 200):
def f(t):
return (i / 100 + 1j) ** (t ** 0.5)

X, Y = [], []
for t in range(1, 200):
z = f(t)
x = z.real
y = z.imag
X.append(x)
Y.append(y)
clear_output(True)
plt.scatter(X, Y)
plt.show()
Показать полностью 1
[моё] Закорючки Python Jupyter notebook Гифка
14
DELETED
6 лет назад

Среда разработки у DS⁠⁠

Среда разработки у DS Машинное обучение, Jupyter notebook, Среда разработки, Длиннопост

Привет, уважаемые. Сегодня хотел поведать, как мы работаем.


Формально мы кодим в среде Jupyter Notebook, но у него нет своего окна, поэтому его загнали в браузер. Так он выглядит:

Среда разработки у DS Машинное обучение, Jupyter notebook, Среда разработки, Длиннопост

(кусочек из Евио :) ).  Как видим, отличий от классической среды разработки много.


Одно из самых важных - то, что весь код разбит на ячейки. Для DS это очень удобно, потому что можно перезапустить только кусок кода. Зачем это нужно? Ну например вы уже описали модель, загрузили данные и т. д. Но не обучили. Поэтому ячейку обучения можно будет перезапускать несколько раз, не загружая данные заново.


Второе важное отличие - это минимальный markdown. Внизу скрина виден кусочек картинки. Да да, прямо в коде. Картинка. Также можно делать другие html-ные фичи.

Среда разработки у DS Машинное обучение, Jupyter notebook, Среда разработки, Длиннопост

Так выглядит собственный explorer от jupyter notebook.


Вот, вроде все. Ну и клубничку в ленту :).

Среда разработки у DS Машинное обучение, Jupyter notebook, Среда разработки, Длиннопост
Показать полностью 3
[моё] Машинное обучение Jupyter notebook Среда разработки Длиннопост
2
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии