Изучаем матрицы в питоне и массивы NumPy в Python
Матрица — это двухмерная структура данных, в которой числа расположены в виде строк и столбцов. Например:
Эта матрица является матрицей три на четыре, потому что она состоит из 3 строк и 4 столбцов.
- Матрицы в Python
- NumPy массивы в Python
- Как создать массив NumPy?
- Массив целых чисел, чисел с плавающей точкой и составных чисел
- Массив нулей и единиц
- Использование arange() и shape()
- Операции с матрицами
- Сложение двух матриц или сумма элементов массива Python
- Умножение двух матриц Python
- Транспонирование матрицы питон
- Доступ к элементам матрицы, строкам и столбца
- Доступ к элементам матрицы
- Доступ к строкам матрицы
- Доступ к столбцам матрицы
- Разделение матрицы
Python не имеет встроенного типа данных для матриц. Но можно рассматривать список как матрицу. Например:
A = [[1, 4, 5], [-5, 8, 9]]
Этот список является матрицей на 2 строки и 3 столбца.
Обязательно ознакомьтесь с документацией по спискам Python, прежде чем продолжить читать эту статью.
Давайте посмотрим, как работать с вложенным списком.
A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] print("A =", A) print("A[1] =", A[1]) # вторая строка print("A[1][2] =", A[1][2]) # третий элемент второй строки print("A[0][-1] =", A[0][-1]) # последний элемент первой строки column = []; # пустой список for row in A: column.append(row[2]) print("3rd column =", column)
Когда мы запустим эту программу, результат будет следующий:
A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] A [1] = [-5, 8, 9, 0] A [1] [2] = 9 A [0] [- 1] = 12 3-й столбец = [5, 9, 11]
Использование вложенных списков в качестве матрицы подходит для простых вычислительных задач. Но в Python есть более эффективный способ работы с матрицами – NumPy .
NumPy — это расширение для научных вычислений, которое поддерживает мощный объект N-мерного массива. Прежде чем использовать NumPy, необходимо установить его. Для получения дополнительной информации,
- Ознакомьтесь: Как установить NumPy Python?
- Если вы работаете в Windows, скачайте и установите дистрибутив anaconda Python. Он поставляется вместе с NumPy и другими расширениями.
После установки NumPy можно импортировать и использовать его.
NumPy предоставляет собой многомерный массив чисел (который на самом деле является объектом). Давайте рассмотрим приведенный ниже пример:
import numpy as np a = np.array([1, 2, 3]) print(a) # Вывод: [1, 2, 3] print(type(a)) # Вывод: <class 'numpy.ndarray'>
Как видите, класс массива NumPy называется ndarray.
Существует несколько способов создания массивов NumPy.
import numpy as np A = np.array([[1, 2, 3], [3, 4, 5]]) print(A) A = np.array([[1.1, 2, 3], [3, 4, 5]]) # Массив чисел с плавающей запятой print(A) A = np. array([[1, 2, 3], [3, 4, 5]], dtype = complex) # Массив составных чисел print(A)
Когда вы запустите эту программу, результат будет следующий:
[[1 2 3] [3 4 5]] [[1.1 2. 3.] [3. 4. 5.]] [[1. + 0.j 2. + 0.j 3. + 0.j] [3. + 0.j 4. + 0.j 5. + 0.j]]
import numpy as np zeors_array = np.zeros( (2, 3) ) print(zeors_array) ''' Вывод: [[0. 0. 0.] [0. 0. 0.]] ''' ones_array = np.ones( (1, 5), dtype=np.int32 ) // указание dtype print(ones_array) # Вывод: [[1 1 1 1 1]]
Здесь мы указали dtype — 32 бита (4 байта). Следовательно, этот массив может принимать значения от -2-31 до 2-31-1.
import numpy as np A = np.arange(4) print('A =', A) B = np.arange(12).reshape(2, 6) print('B =', B) ''' Вывод: A = [0 1 2 3] B = [[ 0 1 2 3 4 5] [ 6 7 8 9 10 11]] '''
Узнайте больше о других способах создания массива NumPy .
Выше мы привели пример сложение, умножение матриц и транспонирование матрицы. Мы использовали вложенные списки, прежде чем создавать эти программы.
Мы используем оператор +, чтобы сложить соответствующие элементы двух матриц NumPy.
import numpy as np A = np.array([[2, 4], [5, -6]]) B = np.array([[9, -3], [3, 6]]) C = A + B # сложение соответствующих элементов print(C) ''' Вывод: [[11 1] [ 8 0]] '''
Чтобы умножить две матрицы, мы используем метод dot(). Узнайте больше о том, как работает numpy.dot .
Примечание: * используется для умножения массива (умножения соответствующих элементов двух массивов), а не умножения матрицы.
import numpy as np A = np.array([[3, 6, 7], [5, -3, 0]]) B = np.array([[1, 1], [2, 1], [3, -3]]) C = a.dot(B) print(C) ''' Вывод: [[ 36 -12] [ -1 2]] '''
Мы используем numpy.transpose для вычисления транспонирования матрицы.
import numpy as np A = np.array([[1, 1], [2, 1], [3, -3]]) print(A.transpose()) ''' Вывод: [[ 1 2 3] [ 1 1 -3]] '''
Как видите, NumPy значительно упростил нашу задачу.
Также можно получить доступ к элементам матрицы, используя индекс. Начнем с одномерного массива NumPy.
import numpy as np A = np.array([2, 4, 6, 8, 10]) print("A[0] =", A[0]) # Первый элемент print("A[2] =", A[2]) # Третий элемент print("A[-1] =", A[-1]) # Последний элемент
Когда вы запустите эту программу, результат будет следующий:
A [0] = 2 A [2] = 6 A [-1] = 10
Теперь выясним, как получить доступ к элементам двухмерного массива (который в основном представляет собой матрицу).
import numpy as np A = np.array([[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]]) # Первый элемент первой строки print("A[0][0] =", A[0][0]) # Третий элемент второй строки print("A[1][2] =", A[1][2]) # Последний элемент последней строки print("A[-1][-1] =", A[-1][-1])
Когда мы запустим эту программу, результат будет следующий:
A [0] [0] = 1 A [1] [2] = 9 A [-1] [- 1] = 19
import numpy as np A = np.array([[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]]) print("A[0] =", A[0]) # Первая строка print("A[2] =", A[2]) # Третья строка print("A[-1] =", A[-1]) # Последняя строка (третья строка в данном случае)
Когда мы запустим эту программу, результат будет следующий:
A [0] = [1, 4, 5, 12] A [2] = [-6, 7, 11, 19] A [-1] = [-6, 7, 11, 19]
import numpy as np A = np.array([[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]]) print("A[:,0] =",A[:,0]) # Первый столбец print("A[:,3] =", A[:,3]) # Четвертый столбец print("A[:,-1] =", A[:,-1]) # Последний столбец (четвертый столбец в данном случае)
Когда мы запустим эту программу, результат будет следующий:
A [:, 0] = [1 -5 -6] A [:, 3] = [12 0 19] A [:, - 1] = [12 0 19]
Если вы не знаете, как работает приведенный выше код, прочтите раздел «Разделение матрицы».
Разделение одномерного массива NumPy аналогично разделению списка. Рассмотрим пример:
import numpy as np letters = np. array([1, 3, 5, 7, 9, 7, 5]) # с 3-го по 5-ый элементы print(letters[2:5]) # Вывод: [5, 7, 9] # с 1-го по 4-ый элементы print(letters[:-5]) # Вывод: [1, 3] # с 6-го до последнего элемента print(letters[5:]) # Вывод:[7, 5] # с 1-го до последнего элемента print(letters[:]) # Вывод:[1, 3, 5, 7, 9, 7, 5] # список в обратном порядке print(letters[::-1]) # Вывод:[5, 7, 9, 7, 5, 3, 1]
Теперь посмотрим, как разделить матрицу.
import numpy as np A = np.array([[1, 4, 5, 12, 14], [-5, 8, 9, 0, 17], [-6, 7, 11, 19, 21]]) print(A[:2, :4]) # две строки, четыре столбца ''' Вывод: [[ 1 4 5 12] [-5 8 9 0]] ''' print(A[:1,]) # первая строка, все столбцы ''' Вывод: [[ 1 4 5 12 14]] ''' print(A[:,2]) # все строки, второй столбец ''' Вывод: [ 5 9 11] ''' print(A[:, 2:5]) # все строки, с третьего по пятый столбец ''' Вывод: [[ 5 12 14] [ 9 0 17] [11 19 21]] '''
Использование NumPy вместо вложенных списков значительно упрощает работу с матрицами.
Вадим Дворниковавтор-переводчик статьи «Python Matrices and NumPy Arrays»
Изучаем матрицы в питоне и массивы NumPy в Python
Матрица — это двухмерная структура данных, в которой числа расположены в виде строк и столбцов. Например:
Эта матрица является матрицей три на четыре, потому что она состоит из 3 строк и 4 столбцов.
- Матрицы в Python
- NumPy массивы в Python
- Как создать массив NumPy?
- Массив целых чисел, чисел с плавающей точкой и составных чисел
- Массив нулей и единиц
- Использование arange() и shape()
- Операции с матрицами
- Сложение двух матриц или сумма элементов массива Python
- Умножение двух матриц Python
- Транспонирование матрицы питон
- Доступ к элементам матрицы, строкам и столбца
- Доступ к элементам матрицы
- Доступ к строкам матрицы
- Доступ к столбцам матрицы
- Разделение матрицы
Python не имеет встроенного типа данных для матриц. Но можно рассматривать список как матрицу. Например:
A = [[1, 4, 5], [-5, 8, 9]]
Этот список является матрицей на 2 строки и 3 столбца.
Обязательно ознакомьтесь с документацией по спискам Python, прежде чем продолжить читать эту статью.
Давайте посмотрим, как работать с вложенным списком.
A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] print("A =", A) print("A[1] =", A[1]) # вторая строка print("A[1][2] =", A[1][2]) # третий элемент второй строки print("A[0][-1] =", A[0][-1]) # последний элемент первой строки column = []; # пустой список for row in A: column.append(row[2]) print("3rd column =", column)
Когда мы запустим эту программу, результат будет следующий:
A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] A [1] = [-5, 8, 9, 0] A [1] [2] = 9 A [0] [- 1] = 12 3-й столбец = [5, 9, 11]
Использование вложенных списков в качестве матрицы подходит для простых вычислительных задач. Но в Python есть более эффективный способ работы с матрицами – NumPy .
NumPy — это расширение для научных вычислений, которое поддерживает мощный объект N-мерного массива. Прежде чем использовать NumPy, необходимо установить его. Для получения дополнительной информации,
- Ознакомьтесь: Как установить NumPy Python?
- Если вы работаете в Windows, скачайте и установите дистрибутив anaconda Python. Он поставляется вместе с NumPy и другими расширениями.
После установки NumPy можно импортировать и использовать его.
NumPy предоставляет собой многомерный массив чисел (который на самом деле является объектом). Давайте рассмотрим приведенный ниже пример:
import numpy as np a = np.array([1, 2, 3]) print(a) # Вывод: [1, 2, 3] print(type(a)) # Вывод: <class 'numpy.ndarray'>
Как видите, класс массива NumPy называется ndarray.
Существует несколько способов создания массивов NumPy.
import numpy as np A = np.array([[1, 2, 3], [3, 4, 5]]) print(A) A = np.array([[1.1, 2, 3], [3, 4, 5]]) # Массив чисел с плавающей запятой print(A) A = np. array([[1, 2, 3], [3, 4, 5]], dtype = complex) # Массив составных чисел print(A)
Когда вы запустите эту программу, результат будет следующий:
[[1 2 3] [3 4 5]] [[1.1 2. 3.] [3. 4. 5.]] [[1. + 0.j 2. + 0.j 3. + 0.j] [3. + 0.j 4. + 0.j 5. + 0.j]]
import numpy as np zeors_array = np.zeros( (2, 3) ) print(zeors_array) ''' Вывод: [[0. 0. 0.] [0. 0. 0.]] ''' ones_array = np.ones( (1, 5), dtype=np.int32 ) // указание dtype print(ones_array) # Вывод: [[1 1 1 1 1]]
Здесь мы указали dtype — 32 бита (4 байта). Следовательно, этот массив может принимать значения от -2-31 до 2-31-1.
import numpy as np A = np.arange(4) print('A =', A) B = np.arange(12).reshape(2, 6) print('B =', B) ''' Вывод: A = [0 1 2 3] B = [[ 0 1 2 3 4 5] [ 6 7 8 9 10 11]] '''
Узнайте больше о других способах создания массива NumPy .
Выше мы привели пример сложение, умножение матриц и транспонирование матрицы. Мы использовали вложенные списки, прежде чем создавать эти программы. Рассмотрим, как выполнить ту же задачу, используя массив NumPy.
Мы используем оператор +, чтобы сложить соответствующие элементы двух матриц NumPy.
import numpy as np A = np.array([[2, 4], [5, -6]]) B = np.array([[9, -3], [3, 6]]) C = A + B # сложение соответствующих элементов print(C) ''' Вывод: [[11 1] [ 8 0]] '''
Чтобы умножить две матрицы, мы используем метод dot(). Узнайте больше о том, как работает numpy.dot .
Примечание: * используется для умножения массива (умножения соответствующих элементов двух массивов), а не умножения матрицы.
import numpy as np A = np.array([[3, 6, 7], [5, -3, 0]]) B = np.array([[1, 1], [2, 1], [3, -3]]) C = a.dot(B) print(C) ''' Вывод: [[ 36 -12] [ -1 2]] '''
Мы используем numpy.transpose для вычисления транспонирования матрицы.
import numpy as np A = np.array([[1, 1], [2, 1], [3, -3]]) print(A.transpose()) ''' Вывод: [[ 1 2 3] [ 1 1 -3]] '''
Как видите, NumPy значительно упростил нашу задачу.
Также можно получить доступ к элементам матрицы, используя индекс. Начнем с одномерного массива NumPy.
import numpy as np A = np.array([2, 4, 6, 8, 10]) print("A[0] =", A[0]) # Первый элемент print("A[2] =", A[2]) # Третий элемент print("A[-1] =", A[-1]) # Последний элемент
Когда вы запустите эту программу, результат будет следующий:
A [0] = 2 A [2] = 6 A [-1] = 10
Теперь выясним, как получить доступ к элементам двухмерного массива (который в основном представляет собой матрицу).
import numpy as np A = np.array([[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]]) # Первый элемент первой строки print("A[0][0] =", A[0][0]) # Третий элемент второй строки print("A[1][2] =", A[1][2]) # Последний элемент последней строки print("A[-1][-1] =", A[-1][-1])
Когда мы запустим эту программу, результат будет следующий:
A [0] [0] = 1 A [1] [2] = 9 A [-1] [- 1] = 19
import numpy as np A = np. array([[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]]) print("A[0] =", A[0]) # Первая строка print("A[2] =", A[2]) # Третья строка print("A[-1] =", A[-1]) # Последняя строка (третья строка в данном случае)
Когда мы запустим эту программу, результат будет следующий:
A [0] = [1, 4, 5, 12] A [2] = [-6, 7, 11, 19] A [-1] = [-6, 7, 11, 19]
import numpy as np A = np.array([[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]]) print("A[:,0] =",A[:,0]) # Первый столбец print("A[:,3] =", A[:,3]) # Четвертый столбец print("A[:,-1] =", A[:,-1]) # Последний столбец (четвертый столбец в данном случае)
Когда мы запустим эту программу, результат будет следующий:
A [:, 0] = [1 -5 -6] A [:, 3] = [12 0 19] A [:, - 1] = [12 0 19]
Если вы не знаете, как работает приведенный выше код, прочтите раздел «Разделение матрицы».
Разделение одномерного массива NumPy аналогично разделению списка. Рассмотрим пример:
import numpy as np letters = np. array([1, 3, 5, 7, 9, 7, 5]) # с 3-го по 5-ый элементы print(letters[2:5]) # Вывод: [5, 7, 9] # с 1-го по 4-ый элементы print(letters[:-5]) # Вывод: [1, 3] # с 6-го до последнего элемента print(letters[5:]) # Вывод:[7, 5] # с 1-го до последнего элемента print(letters[:]) # Вывод:[1, 3, 5, 7, 9, 7, 5] # список в обратном порядке print(letters[::-1]) # Вывод:[5, 7, 9, 7, 5, 3, 1]
Теперь посмотрим, как разделить матрицу.
import numpy as np A = np.array([[1, 4, 5, 12, 14], [-5, 8, 9, 0, 17], [-6, 7, 11, 19, 21]]) print(A[:2, :4]) # две строки, четыре столбца ''' Вывод: [[ 1 4 5 12] [-5 8 9 0]] ''' print(A[:1,]) # первая строка, все столбцы ''' Вывод: [[ 1 4 5 12 14]] ''' print(A[:,2]) # все строки, второй столбец ''' Вывод: [ 5 9 11] ''' print(A[:, 2:5]) # все строки, с третьего по пятый столбец ''' Вывод: [[ 5 12 14] [ 9 0 17] [11 19 21]] '''
Использование NumPy вместо вложенных списков значительно упрощает работу с матрицами. Мы рекомендуем детально изучить пакет NumPy, если вы планируете использовать Python для анализа данных.
Вадим Дворниковавтор-переводчик статьи «Python Matrices and NumPy Arrays»
Программа Python для умножения двух матриц
В этом примере мы научимся умножать матрицы двумя разными способами: вложенным циклом и вложенным списком.
Чтобы понять этот пример, вы должны знать следующие темы программирования на Python:
В Python мы можем реализовать матрицу как вложенный список (список внутри списка).
Каждый элемент можно рассматривать как строку матрицы.
Например, X = [[1, 2], [4, 5], [3, 6]]
будет представлять собой матрицу 3x2
.
Первую строку можно выбрать как X[0]
. И элемент в первой строке, первом столбце можно выбрать как X[0][0]
.
Умножение двух матриц X и Y определено, только если количество столбцов в X равно количеству строк Y .
Если X является матрицей n x m
, а Y является матрицей m x l
, то XY определен и имеет размерность n x l
(но YX не определен). Вот несколько способов реализовать матричное умножение в Python.
Исходный код: Умножение матриц с использованием вложенного цикла
# Программа для умножения двух матриц с использованием вложенных циклов #матрица 3х3 Х = [[12,7,3], [4 ,5,6], [7 ,8,9]] #матрица 3х4 Y = [[5,8,1,2], [6,7,3,0], [4,5,9,1]] # результат 3x4 результат = [[0,0,0,0], [0,0,0,0], [0,0,0,0]] # перебираем строки X для i в диапазоне (len (X)): # перебираем столбцы Y для j в диапазоне (len (Y [0])): # перебираем строки Y для k в диапазоне (len (Y)): результат[i][j] += X[i][k] * Y[k][j] для r в результате: печать (г)
Выход
[114, 160, 60, 27] [74, 97, 73, 14] [119, 157, 112, 23]
В этой программе мы использовали вложенные циклы for
для перебора каждой строки и каждого столбца. Сумму произведений суммируем в результате.
Этот метод прост, но требует больших вычислительных ресурсов, поскольку мы увеличиваем порядок матрицы.
Для больших операций с матрицами мы рекомендуем оптимизированные программные пакеты, такие как NumPy, которые в несколько (порядка 1000) раз быстрее, чем приведенный выше код.
Исходный код: Умножение матриц с использованием понимания вложенных списков
# Программа для умножения двух матриц с использованием понимания списков #матрица 3х3 Х = [[12,7,3], [4 ,5,6], [7 ,8,9]] #матрица 3х4 Y = [[5,8,1,2], [6,7,3,0], [4,5,9,1]] # результат 3x4 результат = [[сумма(a*b для a,b в zip(X_row,Y_col)) для Y_col в zip(*Y)] для X_row в X] для r в результате: печать (г)
Вывод этой программы такой же, как и выше. Чтобы понять приведенный выше код, мы должны сначала узнать о встроенной функции 9.0011 zip() и список аргументов распаковки с помощью оператора *.
Мы использовали вложенный список для перебора каждого элемента в матрице. Сначала код кажется сложным и нечитаемым. Но как только вы освоите понимание списков, вы, вероятно, уже не вернетесь к вложенным циклам.
Python Массив числовых значений
В этом руководстве вы узнаете о модуле массива Python, разнице между массивами и списками, а также о том, как и когда их использовать с помощью примеров.
Примечание: Когда люди говорят о массивах в Python, чаще всего они имеют в виду списков Python . Если это так, посетите руководство по списку Python.
В этом уроке мы сосредоточимся на модуле с именем array
. Модуль array позволяет нам хранить набор числовых значений.
Создание массивов Python
Чтобы создать массив числовых значений, нам нужно импортировать модуль массива
. Например:
импортировать массив как обр a = массив.массив('d', [1.1, 3.5, 4.5]) print(a)
Вывод
array('d', [1. 1, 3.5, 4.5])
Здесь мы создали массив типа float
. Буква d
— код типа. Это определяет тип массива во время создания.
Наиболее часто используемые коды типов перечислены ниже:
Код | С Тип | Питон Тип | Мин. байт |
---|---|---|---|
б | подписанный символ | интервал | 1 |
Б | символ без знака | интервал | 1 |
и | Py_UNICODE | Юникод | 2 |
ч | коротко подписанный | между | 2 |
Н | беззнаковый короткий | между | 2 |
и | подписано | между | 2 |
я | Целое число без знака | между | 2 |
л | подписано длинное | между | 4 |
л | длинное беззнаковое | между | 4 |
ф | поплавок | поплавок | 4 |
д | двойной | поплавок | 8 |
В этой статье мы не будем обсуждать различные типы C. Во всей этой статье мы будем использовать два кода типов: и
для целых чисел и d
для чисел с плавающей запятой.
Примечание : Код типа u
для символов Unicode устарел, начиная с версии 3.3. Избегайте использования как можно больше.
Доступ к элементам массива Python
Мы используем индексы для доступа к элементам массива:
импортировать массив как arr a = массив.массив('i', [2, 4, 6, 8]) print("Первый элемент:", a[0]) print("Второй элемент:", a[1]) print("Последний элемент:", a[-1])
Вывод
Первый элемент: 2 Второй элемент: 4 Последний элемент: 8
Примечание : Индекс начинается с 0 (не 1) аналогично спискам.
Нарезка массивов Python
Мы можем получить доступ к ряду элементов в массиве с помощью оператора среза :
.
импортировать массив как обр number_list = [2, 5, 62, 5, 42, 52, 48, 5] массив_чисел = массив. массив('i', список_чисел) print(numbers_array[2:5]) # с 3-го по 5-й print(numbers_array[:-5]) # начиная с 4-го print(numbers_array[5:]) # с 6-го до конца print(numbers_array[:]) # с начала до конца
Выход
Массив ('i', [62, 5, 42]) массив('i', [2, 5, 62]) массив('i', [52, 48, 5]) array('i', [2, 5, 62, 5, 42, 52, 48, 5])
Изменение и добавление элементов
Массивы изменяемы; их элементы можно изменять так же, как списки.
импортировать массив как обр числа = массив.массив('i', [1, 2, 3, 5, 7, 10]) # изменение первого элемента числа [0] = 0 print(numbers) # Вывод: массив('i', [0, 2, 3, 5, 7, 10]) # замена 3-го элемента на 5-й числа[2:5] = массив.массив('i', [4, 6, 8]) print(numbers) # Вывод: array('i', [0, 2, 4, 6, 8, 10])
Выход
массив('i', [0, 2, 3, 5, 7, 10]) array('i', [0, 2, 4, 6, 8, 10])
Мы можем добавить один элемент в массив, используя метод append()
, или добавить несколько элементов, используя метод extend() Метод
.
импортировать массив как обр числа = массив.массив('i', [1, 2, 3]) числа.добавить(4) print(numbers) # Вывод: массив('i', [1, 2, 3, 4]) # extend() добавляет итерируемый объект в конец массива числа.расширить([5, 6, 7]) print(numbers) # Вывод: array('i', [1, 2, 3, 4, 5, 6, 7])
Выход
Массив ('i', [1, 2, 3, 4]) array('i', [1, 2, 3, 4, 5, 6, 7])
Мы также можем объединить два массива, используя оператор +
.
импортировать массив как обр нечетный = массив.массив('i', [1, 3, 5]) четный = массив.массив('i', [2, 4, 6]) numbers = arr.array('i') # создание пустого массива целых чисел числа = нечетные + четные печать(числа)
Вывод
массив('i', [1, 3, 5, 2, 4, 6])
Удаление элементов массива Python
Мы можем удалить один или несколько элементов из массива, используя оператор Python del.
импортировать массив как обр число = массив. массив('i', [1, 2, 3, 3, 4]) del number[2] # удаление третьего элемента print(number) # Вывод: array('i', [1, 2, 3, 4]) del number # удаление всего массива print(number) # Ошибка: массив не определен
Вывод
Массив ('i', [1, 2, 3, 4]) Traceback (последний последний вызов): Файл "", строка 9, в <модуль> print(number) # Ошибка: массив не определен NameError: name 'number' не определено
Мы можем использовать метод remove()
для удаления данного элемента и метод pop()
для удаления элемента по заданному индексу.
импортировать массив как обр числа = массив.массив('i', [10, 11, 12, 12, 13]) числа.удалить(12) print(numbers) # Вывод: массив('i', [10, 11, 12, 13]) print(numbers.pop(2)) # Вывод: 12 print(numbers) # Вывод: array('i', [10, 11, 13])
Выход
массив('i', [10, 11, 12, 13]) 12 array('i', [10, 11, 13])
Посетите эту страницу, чтобы узнать больше о массивах Python и их методах.
Списки Python против массивов
В Python мы можем рассматривать списки как массивы. Однако мы не можем ограничить тип элементов, хранящихся в списке. Например:
# элементы разных типов a = [1, 3.5, "Hello"]
Если вы создаете массивы с использованием массива
все элементы массива должны быть одного числового типа.
импортировать массив как обр # Ошибка a = массив.array('d', [1, 3.5, "Привет"])
Вывод
Трассировка (последний последний вызов): Файл "", строка 3, в a = массив.array('d', [1, 3.5, "Привет"]) TypeError: должно быть реальное число, а не str
Когда использовать массивы?
Списки гораздо более гибкие, чем массивы. Они могут хранить элементы различных типов данных, включая строки. И если вам нужно выполнять математические вычисления с массивами и матрицами, вам гораздо лучше использовать что-то вроде NumPy.
Итак, для чего используются массивы, созданные из модуля массивов Python?
Тип array.