Изучаем матрицы в питоне и массивы 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.

array([[1, 2, 3], [3, 4, 5]], dtype = complex) # Массив составных чисел
print(A)

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]
array([[1, 2, 3], [3, 4, 5]], dtype = complex) # Массив составных чисел
print(A)
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]) # Последняя строка (третья строка в данном случае)
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]
1, 3.5, 4.5])
массив('i', список_чисел)
print(numbers_array[2:5]) # с 3-го по 5-й
print(numbers_array[:-5]) # начиная с 4-го
print(numbers_array[5:]) # с 6-го до конца
print(numbers_array[:]) # с начала до конца
массив('i', [1, 2, 3, 3, 4])
del number[2] # удаление третьего элемента
print(number) # Вывод: array('i', [1, 2, 3, 4])
del number # удаление всего массива
print(number) # Ошибка: массив не определен