Кто-нибудь знает, как извлечь столбец из многомерного массива в Python?
240
Кто-нибудь знает, как извлечь столбец из многомерного массива в Python?
>>> import numpy as np
>>> A = np.array([[1,2,3,4],[5,6,7,8]])
>>> A
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
>>> A[:,2] # returns the third columm
array([3, 7])
Смотрите также: «numpy.arange» и «reshape» для выделения памяти
Пример: (Выделение массива с формированием матрицы (3x4))
nrows = 3
ncols = 4
my_array = numpy.arange(nrows*ncols, dtype='double')
my_array = my_array.reshape(nrows, ncols)
[row, col]
. запятая отделяется.Может быть, вы используете массив NumPy ? В Python есть модуль массива , но он не поддерживает многомерные массивы. Обычные списки Python тоже одномерные.
Однако, если у вас есть простой двумерный список, подобный этому:
тогда вы можете извлечь столбец следующим образом:
Извлечение второго столбца (индекс 1):
Или просто:
источник
Если у вас есть массив как
Затем вы извлекаете первый столбец так:
Итак, результат выглядит так:
источник
проверить это!
это то же самое, что и выше, за исключением того, что как-то лучше, когда zip выполняет работу, но требует в качестве аргументов одиночные массивы, синтаксис * a распаковывает многомерный массив в аргументы одного массива
источник
a2 = zip(*a); a2 = list(a2); a2[0]
Функция map в Python - это еще один способ.
источник
если вы хотите второй столбец вы можете использовать
источник
arange()
Python3 за пределами NumPy. Кто угодно?источник
Оператор itemgetter также может помочь, если вам нравится Python с уменьшением карты, а не списки, для небольшого разнообразия!
источник
Вы также можете использовать это:
Примечание: это не работает для встроенного массива и не выровнено (например, np.array ([[1,2,3], [4,5,6,7]]))
источник
Я думаю, что вы хотите извлечь столбец из массива, такого как массив ниже
Теперь, если вы хотите получить третий столбец в формате
Затем вам нужно сначала сделать массив матрицей
И теперь вы можете делать поэлементные вычисления так же, как в Excel.
источник
скажем, у нас есть
n X m
матрица (n
строки иm
столбцы) скажем, 5 строк и 4 столбцаЧтобы извлечь столбцы в Python, мы можем использовать понимание списка, как это
Вы можете заменить 4 на любое количество столбцов в вашей матрице. Результат
[ [1,5,9,13,17],[2,10,14,18],[3,7,11,15,19],[4,8,12,16,20] ]
источник
источник
Еще один способ использования матриц
источник
Если у вас есть двумерный массив в Python (не numpy), вы можете извлечь все столбцы следующим образом:
Выполнение этого кода даст,
Конечно, вы можете извлечь один столбец по индексу (например
columns[0]
)источник
Несмотря на использование
zip(*iterable)
для транспонирования вложенного списка, вы также можете использовать следующее, если вложенные списки имеют разную длину:результаты в:
Первый столбец, таким образом:
источник
Ну, немного "поздно" ...
В случае, если производительность имеет значение, а ваши данные имеют прямоугольную форму, вы также можете хранить их в одном измерении и получать доступ к столбцам с помощью регулярного среза, например ...
Приятно то, что это действительно быстро. Однако отрицательные показатели здесь не работают! Таким образом, вы не можете получить доступ к последнему столбцу или строке по индексу -1.
Если вам нужна отрицательная индексация, вы можете немного настроить функции доступа, например,
источник
Если вы хотите получить более одного столбца, просто используйте слайс:
источник
Я предпочитаю следующую подсказку: назвав матрицу
matrix_a
и используяcolumn_number
, например:источник
Просто используйте transpose (), тогда вы можете получить столбцы так же просто, как строки
источник
Все столбцы из матрицы в новый список:
источник