Расчет недельных продаж с помощью DAX в LuckyTemplates
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Умножение списков в Python — обычная операция при выполнении математических вычислений или решении задач по обработке данных. Есть несколько способов выполнить эту задачу, в зависимости от ваших требований и доступных библиотек.
Чтобы умножить списки в Python, вы можете использовать циклы for, генератор списков, функции zip и map или встроенный модуль functools. Вы также можете использовать функции из внешней библиотеки Python, например NumPy.
Эта статья покажет вам много разных способов умножения списков, каждый с примером кода и объяснением результатов.
Давайте начнем!
Оглавление
2 типа умножения числового списка в Python
Прежде чем мы углубимся в конкретные методы, вы должны понять тип умножения списка, которого они достигают.
Python имеет несколько различных концепций, которые относятся к широкому термину умножения списков. Это включает в себя репликацию списков или достижение декартова произведения элементов в списке.
Вместо этого в этой статье основное внимание уделяется двум типам арифметического умножения элементов в списке:
Умножение на значение
Поэлементное умножение
Давайте кратко рассмотрим эти два понятия.
1. Умножение на значение
Когда у вас есть список целых чисел, вы можете захотеть умножить каждый элемент на определенное значение. Например, у вас есть список [1, 2, 3] и вы хотите умножить каждый элемент на значение 3.
Вы можете попробовать (неправильно) использовать оператор умножения, как в этом фрагменте кода:
list1 = [1, 2, 3]
result = list1 * 3
Вы можете быть удивлены, что результатом будет [1, 2, 3, 1, 2, 3, 1, 2, 3]. Это известно как репликация списка .
2. Поэлементное умножение списка
Предположим, у вас есть два списка: [1, 2, 3] и [4, 5, 6]
Вы хотите умножить элементы с одним и тем же индексом в списке, чтобы получить в результате [4, 10, 18].
Если вы попытаетесь умножить два списка Python вместе с помощью оператора '*', вы получите сообщение об ошибке:
TypeError: невозможно умножить последовательность на не-целое типа «список»
Это связано с тем, что оператор умножения не предназначен для работы со списками так, как он работает с целыми числами или числами с плавающей запятой. Вместо этого для умножения списков требуется операция, известная как поэлементное умножение.
Поэлементное умножение объединяет соответствующие элементы из двух списков и умножает их вместе, формируя новый список.
Теперь, когда вы понимаете эти два понятия. давайте поработаем с рядом методов для достижения правильных результатов.
Как использовать цикл for для нескольких элементов списка в Python
Предположим, вы хотите умножить элементы списка на значение. Для этого подхода вы можете перебирать элементы с помощью цикла for и умножать каждый на второе значение.
Вот пример с одним списком. Переменная результата содержит выходной список.
list1 = [1, 2, 3, 4]
factor = 3
result = []
for element in list1:
result.append(element * factor)
В этом случае список результатов будет [3, 6, 9, 12].
Как использовать понимание списков для умножения
Включение списков обеспечивает краткий способ выполнения числового типа умножения списков. Вы получите тот же результат, что и при использовании цикла for , но с более компактным синтаксисом.
Вот предыдущий пример, использующий понимание списка:
list1 = [1, 2, 3, 4]
factor = 3
result = [element * factor for element in list1]
Этот код возвращает тот же результат, что и раньше: [3, 6, 9, 12].
Как использовать функцию Zip для поэлементного умножения
Если у вас есть два списка целых чисел, вы можете умножить списки по элементам. Это означает, что вы умножаете первый элемент в первом списке на первый элемент во втором списке и так далее с элементами в той же позиции.
Функция zip() может достичь этого, если вы объедините ее с пониманием списка.
Функция объединяет элементы двух входных списков, что позволяет вам перебирать их параллельно. Вот пример использования списков одинакового размера:
list1 = [1, 2, 3, 4]
list2 = [2, 3, 4, 5]
result = [a * b for a, b in zip(list1, list2)]
В этом случае переменная результата будет содержать результирующий список: [4, 10, 18].
Работа с кортежами и конструкторами
Иногда вам, возможно, придется работать со списками, содержащими кортежи, а не простые целые числа.
Чтобы умножить два списка кортежей , вы можете использовать комбинацию:
функция zip()
конструкторы кортежей
понимание списка
Вот пример:
list1 = [(1, 2), (3, 4)]
list2 = [(5, 6), (7, 8)]
result = [tuple(a * b for a, b in zip(t1, t2)) for t1, t2 in zip(list1, list2)]
Это результат: [(5, 12), (21, 32)].
Как использовать карту и лямбда-функцию в Python
Функция карты в Python — это удобный способ применить функцию к каждому элементу в итерируемом объекте, таком как список.
Лямбда-функция в Python — это небольшая анонимная функция. Это означает, что это функция без имени.
Чтобы умножить два списка поэлементно, вы можете комбинировать функции карты и лямбда:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(lambda x, y: x * y, list1, list2))
Переменная результата будет содержать перемноженные списки: [4, 10, 18].
Как использовать модуль оператора в Python
Модуль оператора предоставляет множество полезных функций для работы с различными структурами и типами данных.
Функцию operator.mul() можно использовать для умножения списков целых чисел, если вы комбинируете ее с функцией карты.
import operator
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(operator.mul, list1, list2))
В этом примере вы импортируете модуль оператора и используете функцию mul() вместе со встроенной в Python функцией map() для умножения каждого элемента двух списков.
Переменная результата будет содержать перемноженные списки: [4, 10, 18].
Библиотека NumPy: функции массива и умножения
Библиотека NumPy — мощная внешняя библиотека на Python, широко используемая для числовых вычислений и работы с массивами. Эта библиотека особенно эффективна при работе с большими или многомерными массивами.
Чтобы использовать NumPy, вы можете установить его с помощью pip:
pip install numpy
Чтобы выполнить поэлементное умножение в двух списках с помощью NumPy, выполните следующие общие действия:
Преобразуйте каждый список в массив NumPy, используя numpy.array() .
Выполните умножение с помощью функции умножения NumPy.
При необходимости преобразуйте результат обратно в список Python, используя метод tolist().
Вот пример кода:
import numpy as np
list1 = [1, 2, 3]
list2 = [4, 5, 6]
arr1 = np.array(list1)
arr2 = np.array(list2)
res_arr = np.multiply(arr1, arr2)
result = res_arr.tolist()
Это вернет тот же результат, что и в предыдущих примерах: [4, 10, 18].
Как объединить Functools и NumPy в Python
Библиотека functools содержит функцию сокращения, которая кумулятивно применяет определенную функцию к элементам в списке, уменьшая список до одного значения.
Чтобы умножить два списка с помощью функции reduce() , вы можете комбинировать ее с функцией умножения из библиотеки NumPy.
Вот пример:
from functools import reduce
import numpy as np
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = reduce(np.multiply, [list1, list2])
Этот код импортирует необходимые библиотеки и использует функцию reduce() вместе с numpy.multiply() для выполнения поэлементного умножения двух списков.
Работа со списками и другими структурами данных в Python
Большинство аспектов анализа данных требуют работы со списками, множествами и другими структурами данных. Например, вы примените свои знания при обработке отсутствующих данных с помощью интерполяции.
Посмотрите это видео, чтобы узнать о некоторых продвинутых методах:
Последние мысли
Вы изучили различные методы арифметического умножения списков в Python. Некоторые используют только встроенные модули и функции, в то время как другие полагаются на сторонние библиотеки.
Возможность выполнять поэлементное умножение открывает двери для множества приложений. Эти операции, от анализа данных до машинного обучения, являются неотъемлемой частью многих алгоритмов и вычислительных задач.
Хотя в этой статье основное внимание уделялось умножению, изученные вами концепции применимы и к другим операциям. Поэлементное сложение, вычитание и деление также могут выполняться почти таким же образом.
Помните, что лучший способ закрепить эти концепции — это применить их на практике, так что вперед, запускайте среду Python и начинайте экспериментировать. Независимо от того, автоматизируете ли вы задачи, манипулируете данными или создаете сложное программное обеспечение, эти методы, несомненно, пригодятся.
Удачного питона!
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.