Самый недооцененный язык программирования

Введение

При просмотре статей по программированию на Medium всегда кажется, что все статьи объединяет одно: язык программирования - Python. Теперь я лично ничего не имею против этого. На самом деле, я сам большой поклонник Python.

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

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

Загрузка данных

Цель науки о данных - извлекать знания из данных. Итак, чтобы показать, как bash может быть реализован в науке о данных, нам нужны фиктивные данные для работы. В этой статье мы будем использовать этот простой CSV-файл (нажмите здесь, чтобы увидеть источник) и использовать bash, чтобы выяснить, какие города наиболее часто встречаются в этом наборе данных. Имейте в виду, что в реальной жизни вы, вероятно, будете использовать гораздо большие наборы данных, чем этот.

Если мы хотим загрузить весь набор данных, мы используем команду «cat data.csv». Если мы хотим загрузить первые n строк, мы используем команду «head -n filename.csv». Если мы хотим загрузить последние n строк, мы используем команду «tail -n filename.csv».

В этом примере нам нужны все данные, кроме заголовка таблицы. Поэтому мы загрузим последние 7 строк, которые будут командой tail -7 data.csv.

Теперь, когда файл загружен, мы можем начать извлекать некоторые знания из этого набора данных! Для этого нам нужно иметь возможность использовать эти недавно загруженные данные в качестве входных. В bash для этого есть отличный инструмент под названием «конвейерная обработка».

Конвейерная обработка в bash

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

Если вы хотите сделать это в bash, вам нужно будет использовать оператор «|» между действиями. В этом примере мы будем использовать это, чтобы выбрать определенные поля из нашего набора данных.

Используйте конвейерную обработку для выбора данных

Если вы хотите выбрать определенные данные, лучше всего использовать команду «вырезать». Команда вырезания имеет (среди прочего) возможность выбрать разделитель для разделения данных и затем выбрать поле. Для этого используйте флаги -d (разделитель) и -f (поле). Поскольку это файл, разделенный запятыми, мы будем использовать "," в качестве разделителя.

Если мы сложим все это вместе (как загрузку, так и вырезание данных), чтобы выбрать города из набора данных, мы получим следующий конвейер: tail -7 ‘data.csv’ | cut -d ‘,’ -f 4

Выполните операции с выбранными данными

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

Интуитивно понятно, что первым делом нужно сначала подсчитать города, а затем отсортировать их, но это не лучший способ в bash. Чтобы подсчитать количество экземпляров чего-либо в bash, лучше сначала отсортировать (отсортировать), а затем подсчитать, удалив все двойники (uniq -c). Мы можем снова объединить эти операции, используя конвейерную обработку. В результате получится следующий код: tail -7 ‘data.csv’ | вырезать -d ‘,’ -f 4 | сортировать | uniq -c

На поставленный ранее в статье вопрос можно правильно ответить с помощью bash! Похоже, я единственный в Роттердаме ...

В заключение

Bash - отличный инструмент для науки о данных и программирования в целом. Благодаря встроенным командам и конвейерной обработке он создает другой подход к решению проблем, который освежает сегодняшний мир программирования. Однако ему не хватает многих функций, которые есть (например) в Python.

В этой статье показана лишь небольшая часть того, что возможно в bash, если вы хотите увидеть все возможные команды, посетите: https://ss64.com/bash/.

Код

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