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

[Numpy Tutorial] Как рассчитать доход по почте налогов в одну строку?

Эта статья дает вам супер простое введение в Numpy Armays и их основные операции: +, -, * и //

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

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

Основы

В основе Numpy Library Bibreate Ampy (короче говоря: массивы). Numpy Array содержит все ваши данные для манипулирования, анализируемыми и визуализированными. И даже библиотеки науки на науках более высокого уровня, такие как Pandas, используют Numpy Armers, неявно или явно для их анализа данных. Вы можете подумать о Numpy Array в виде списка Python, который может быть вложенным, и у которых есть некоторые специальные свойства и ограничения. Например, массив состоит из одной или нескольких осей (подумайте о нем как «размеры»).

Вот пример для одномерных, двумерных и трехмерных примесейных массивов:

import numpy as np


# 1D array
a = np.array([1, 2, 3])
print(a)
"""
[1 2 3]
"""


# 2D array
b = np.array([[1, 2],
              [3, 4]])
print(b)
"""
[[1 2]
 [3 4]]
"""


# 3D array
c = np.array([[[1, 2], [3, 4]],
              [[5, 6], [7, 8]]])
print(c)
"""
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]
"""

Создание Numpy Array так же просто, как пропуск нормального списка Python в качестве аргумента в функцию np.array (). Вы можете видеть, что одномерный массив соответствует простому списку численных значений. Двумерный массив соответствует вложенному списку списков числовых значений. Наконец, трехмерный массив соответствует вложенному списку списков списков числовых значений. Вы можете легко создавать более высокие массивы с той же процедурой.

Как правило, количество открытых кронштейнов дает вам размерность Numpy Array.

Одним из преимуществ Numpy Armays являются То, что они перегружены основными арифметическими операторами «+», «- ‘,’ * ‘и’/’. Семантически, думать об этом как о «элементных операциях». Например, посмотрите, как выполняются следующие двумерные операции массива:

import numpy as np


a = np.array([[1, 0, 0],
              [1, 1, 1],
              [2, 0, 0]])

b = np.array([[1, 1, 1],
              [1, 1, 2],
              [1, 1, 2]])


print(a + b)
"""
[[2 1 1]
 [2 2 3]
 [3 1 2]]
"""

print(a - b)
"""
[[ 0 -1 -1]
 [ 0  0 -1]
 [ 1 -1 -2]]
"""

print(a * b)
"""
[[1 0 0]
 [1 1 2]
 [2 0 0]]
"""

print(a / b)
"""
[[1.  0.  0. ]
 [1.  1.  0.5]
 [2.  0.  0. ]]
"""

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

Но Numpy предоставляет гораздо больше возможностей для манипулирующих массивов. Например, функция np.max () рассчитывает максимальное значение всех значений в Numpy Array. Функция NP.MIN () рассчитывает минимальное значение всех значений в Numpy Array. И функция NP.average () рассчитывает среднее значение всех значений в Numpy Array.

Вот пример этих трех операций:

import numpy as np


a = np.array([[1, 0, 0],
              [1, 1, 1],
              [2, 0, 0]])

print(np.max(a))
# 2

print(np.min(a))
# 0

print(np.average(a))
# 0.6666666666666666

Максимальное значение всех значений в массиве NaMpy 2 – минимальное значение 0, а среднее значение/3. Опять же, Numpy гораздо мощнее, чем это – но это уже достаточно, чтобы решить следующую проблему: «Как найти максимальный доход после налогообложения ряда людей, учитывая их ежегодную зарплату и налоговые ставки?»

Код

Давайте посмотрим на эту проблему. Данные – это зарплатные данные Алисы, Боба и Тим. Похоже, Боб наслаждался самой высокой зарплатой за последние три года. Но это действительно тот случай, учитывая индивидуальные налоговые ставки наших трех друзей?

## Dependencies
import numpy as np


## Data: yearly salary in ($1000) [2017, 2018, 2019]
alice = [99, 101, 103]
bob = [110, 108, 105]
tim = [90, 88, 85]

salaries = np.array([alice, bob, tim])
taxation = np.array([[0.2, 0.25, 0.22],
                     [0.4, 0.5, 0.5],
                     [0.1, 0.2, 0.1]])


## One-liner
max_income = np.max(salaries - salaries * taxation)

               
## Result
print(max_income)

Возьмите предположение: какая вывод этого кода фрагмент?

Результат

В фрагменте кода первые заявления импортируют Numpy Library в пространство имен, используя стандартное имя де-факто для Numpy Library: NP. Следующие несколько операторов создают данные, состоящие из двумерного множества массива с тремя строками (одна строка для каждого человека Alice, BOB и TIM) и три столбца (один столбец для каждого года 2017, 2018 и 2019 годов). Я создал два матрица: зарплаты и налогообложение. Первый проводит годовые доходы, в то время как последний проводит налоговые показатели для каждого человека и года.

Чтобы рассчитать доход после налогообложения, вам необходимо вычитать налог (как сумму в долларах) от валового дохода, хранящегося в массиве «зарплаты». Мы используем перегруженные операторы Nampy ‘-‘ и ‘*’, чтобы достичь именно это. Опять же, оба оператора выполняют элемент-мудрые вычисления на многие массивы. В качестве бокового примечания элементное умножение двух матриц называется «Adamard Product».

Давайте рассмотрим, как выглядит Numpy Array после вывода налогов от валовых доходов:

print(salaries - salaries * taxation)
"""
[[79.2  75.75 80.34]
 [66.   54.   52.5 ]
 [81.   70.4  76.5 ]]
"""

Вы можете увидеть, что крупный доход Боб (см. Второй ряд Numpy Array), исчезает после оплаты 40% и 50% налогов.

В однопрочее мы распечатаем максимальное значение этого результирующего массива. По умолчанию функция np.max () просто находит максимальное значение всех значений в массиве. Таким образом, максимальное значение является доход 90 000 долл. США в 2017 году, что облагается налогом только на 10% – результат одноклассника – «81.».

Куда пойти отсюда?

Не пропустите на науке о данных и машинном обучении. Чтобы помочь вам выращивать свои навыки от базового уровня Python, чтобы использовать экспертизу Numpy, я написал новый Numpy Cook «Numpy Numpy». Он использует доказанные принципы хорошего обучения, такого как обучение на основе головоломки, читовные простыни и простые учебники. Проверьте это!

«Breake Break Numpy: простой путь к научному мастерству данных, которые вписываются в вашу оживленную жизнь»

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

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

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

Оригинал: “https://blog.finxter.com/numpy-tutorial-how-to-calculate-post-tax-income-in-one-line/”