Существуют следующие методы преобразования кортежа в массив в Python.
- Использование функции numpy.asarray();
- И numpy.array().
Способ 1: использование numpy.asarray()
Чтобы преобразовать кортеж в массив в Python, вы можете использовать функцию numpy.asarray(). Например, numpy.asarray((11, 21, 19)) возвращает [11 21 19].
|
1 |
Пример
|
1 2 3 4 5 6 7 8 9 10 11 |
import numpy as np tup =(11, 21, 19, 18, 46, 29) print(tup) print(type(tup)) print("After converting Python tuple to array") arr = np.asarray(tup) print(arr) print(type(arr)) |
Выход
|
1 2 3 4 5 |
(11, 21, 19, 18, 46, 29) <class 'tuple'> After converting Python tuple to array [11 21 19 18 46 29] <class 'numpy.ndarray'> |
В этом примере мы импортировали модуль numpy. Затем мы определили кортеж с помощью функции tuple().
Например, проверить тип данных можно с помощью функции type(). В ответ мы получили массив, используя функцию np.asarray() и передав кортеж в качестве аргумента. Если мы проверим тип данных возвращаемого значения, это массив numpy, который мы хотели.
Преобразование кортежа списков в массив
Чтобы преобразовать кортеж списков в массив, вы можете использовать функцию np.asarray(), а затем сгладить массив с помощью метода flatten(), чтобы преобразовать его в одномерный массив.
|
1 2 3 4 5 6 7 8 9 10 11 |
import numpy as np tup =([11, 21, 19], [18, 46, 29]) print("After converting Python tuple of lists to array") arr = np.asarray(tup) print(arr) fla_arr = arr.flatten() print(fla_arr) |
Выход
|
1 2 3 4 |
After converting Python tuple of lists to array [[11 21 19] [18 46 29]] [11 21 19 18 46 29] |
numpy.asarray() преобразует кортеж списков в массив. Тем не менее, он создаст двумерный массив, и чтобы преобразовать его в одномерный массив, используйте метод array.flatten().
Способ 2: использование np.array()
Метод numpy.array() принимает объект Python в качестве аргумента и возвращает массив. Мы передадим объект кортежа функции np.array(), преобразуя этот кортеж в массив.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
import numpy as np tup =([11, 21, 19], [18, 46, 29]) print("After converting Python tuple to array using np.array()") arr = np.array(tup) print(arr) print("After flattening the array") fla_arr = arr.flatten() print(fla_arr) |
Выход
|
1 2 3 4 5 |
After converting Python tuple to array using np.array() [[11 21 19] [18 46 29]] After flattening the array [11 21 19 18 46 29] |
Функция np.array() работает почти так же, как np.asarray() и возвращает преобразованный массив.
Принятие списка Python как массив
Если вы не хотите использовать массив numpy и создавать список в виде массива, используйте понимание списка для преобразования кортежа в массив.
|
1 2 3 4 5 6 7 8 9 10 |
lt = [] tup1 =(11, 19, 21) tup2 =(46, 18, 29) lt.append(tup1) lt.append(tup2) arr = [x for xs in lt for x in xs] print(arr) |
Выход
|
1 |
[11, 19, 21, 46, 18, 29] |
