📹 Вчера в видео мы затронули такую сущность как массивы
numpy. Разберем в чем их отличия от списка в Python. 📊 Списки - это встроенная структура данных в
Python, которая может содержать разнородные элементы любого типа. Давайте рассмотрим пример создания списка:my_list = [1, 2, 3, 'a', 'b', 'c']
🔢 Массивы numpy являются фундаментальной структурой данных в научных вычислениях и специально разработаны для числовых операций. Они однородны по своей природе, что означает, они могут содержать только элементы одного и того же типа данных. Вот пример создания массива numpy:import numpy as np
my_array = np.array([1, 2.5, 3])
array([1., 2.5, 3.])
my_array.dtype
dtype('float64')🧮 Как мы видим,
numpy автоматически переводит из формата int64 в float64 целиком весь массив, даже если хотя бы один элемент является float64 - однородность это цена, которую приходится заплатить за скорость. 🎯 Еще одно ключевое отличие заключается в том, что массивы допускают поэлементные операции:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = arr1 * arr2
print(result)
# Output: [4, 10, 18]
🤔 Напротив, выполнение поэлементных операций со списками потребовало бы перебора каждого элемента, что медленнее и не так лаконично. 🔭 Еще одной полезной функцией массивов
numpy является broadcasting, которая позволяет выполнять операции между массивами различной формы:import numpy as np
arr = np.array([1, 2, 3])
result = arr * 2
print(result) # Output: [2, 4, 6]
📝 Таким образом, в то время как списки являются структурой данных общего назначения в Python, массивы numpy специально разработаны для вычислений и обеспечивают лучшую производительность и функциональность. Однако, если вам нужно хранить элементы разных типов, то придется использовать списки. 🏠 Попробуйте повторить поэлементные операции и broadcasting с помощью списка
Python и присылайте резудьтаты в комментарии. 🏎️ В следующих постах отдельно разберем индексацию и сравним скорость работы разных методов.
💬 Есть хотите обсудить аналитику данных, попросить совета по резюме, поделиться тестовыми или просто задать интересующие вопросы, то присоединяйтесь к нашему чату.
#numpy #python