Рубрики
Без рубрики

Как использовать Numpy Boolean Informing для раскрытия влияния в Instagram

Логическая индексация? Узнайте об этом великолепной проблеме Numpy с помощью этой практической науки о науке данных анализа социальных сетей.

Автор оригинала: Chris.

Эта статья предоставит вам практическое решение одноклассника и обучает вас, как написать краткий Numpy Code с использованием булевой индексации и вещания в Numpy.

Основы

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

Посмотрите на следующий фрагмент кода.

import numpy as np


a = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])

indices = np.array([[False, False, True],
                    [False, False, False],
                    [True, True, False]])

print(a[indices])
# [3 7 8]

Мы создаем два массива «А» и «Индексы». Первый массив содержит двумерные численные данные – вы можете думать об этом как о массиве данных. Второй массив имеет ту же форму и содержит логические значения – думать об этом как о массиве индексации. Отличная особенность Numpy заключается в том, что вы можете использовать логический массив для доступа к мелкозернистым доступе. На простом английском языке мы создаем новую Numpy Array из массива данных, содержащих только те элементы, для которых массив индексации содержит «истинные» логические значения на соответствующих позициях массива. Таким образом, полученный массив содержит три значения 3, 7 и 8.

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

Код

Мы изучаем следующую проблему: «Найдите имена суперзвезд Instagram с более чем 100 миллионами подписчиков!»

## Dependencies
import numpy as np


## Data: popular Instagram accounts (millions followers)
inst = np.array([[232, "@instagram"],
                 [133, "@selenagomez"],
                 [59,  "@victoriassecret"],
                 [120, "@cristiano"],
                 [111, "@beyonce"],
                 [76,  "@nike"]])


## One-liner
superstars = inst[inst[:,0].astype(float) > 100, 1]


## Results
print(superstars)

Вы можете вычислить результат этого одноклассника в вашей голове, не могу ли вы?

Результат

Данные состоят из двумерного массива, где каждая строка представляет собой влияние Instagram. Первый столбец утверждает, что их количество последователей (в миллионах), а вторая колонна состояла в их имени Instagram. Вопрос в том, чтобы найти имена Instagram Instagram, с более чем 100 миллионами подписчиков.

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

## One-liner
superstars = inst[inst[:,0].astype(float) > 100, 1]

Давайте деконструируем эту лайнера на шаг за шагом на шаг.

Во-первых, мы рассчитаем логическое значение, имеет ли у каждого влияния более 100 миллионов подписчиков:

print(inst[:,0].astype(float) > 100)
# [ True  True False  True  True False]

Первый столбец массива данных содержит количество последователей, поэтому мы используем Slicing для доступа к этим данным (Inst [:, 0] возвращает все строки, но только первый столбец). Однако массив данных содержит смешанные типы данных (целые числа и строки). Следовательно, Numpy автоматически присваивает нечисленный тип данных в массив.

Но, как мы хотим выполнить числовые сравнения в первом столбце массива данных (проверка ли каждое значение больше 100), нам сначала нужно преобразовать массив в числовой тип (например, float).

На данный момент мы проверяем, стоит ли плавательный массив Typy типа более целочисленного значения. Что именно происходит здесь? Вы уже узнали о вещании: Numpy автоматически приносит два операнда в одну и ту же форму. Затем он сравнивает два одинаково-образных массива элемент-мудрых. Результатом является массив логических ценностей. У четырех влиятельных сил более 100 миллионов подписчиков.

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

inst[inst[:,0].astype(float) > 100, 1]

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

Влияние на более чем 100 миллионов подписчиков Instagram:

# ['@instagram' '@selenagomez' '@cristiano' '@beyonce']

Что дальше?

Обучение Numpy не только сделает вас лучшим кодером Python , Это также улучшит ваши шансы найти выгодные позиции в качестве ученых данных и решают важные реальные проблемы.

Чтобы помочь вам увеличить стоимость на рынке, я написал новую Numpy Book – 100% на основе проверенного принципа обучения на основе головоломки.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

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