Это простой вопрос, но, скажем, у меня есть матрица MxN. Все, что я хочу сделать, это извлечь определенные столбцы и сохранить их в другом массиве, но я получаю неверные синтаксические ошибки. Вот код:
extractedData = data[[:,1],[:,9]].
Кажется, что приведенной выше строки должно быть достаточно, но я думаю, что нет. Я огляделся, но не смог найти ничего разумного в отношении этого конкретного сценария.
Предполагая, что вы хотите получить столбцы 1 и 9 с этим фрагментом кода, это должно быть:
источник
если вы хотите извлечь только несколько столбцов:
если вы хотите исключить определенные столбцы:
источник
Я хотел бы отметить одну вещь: если число столбцов, которое вы хотите извлечь, равно 1, полученная матрица будет не матрицей Mx1, как вы могли бы ожидать, а массивом, содержащим элементы извлеченного столбца.
Чтобы преобразовать его в Matrix, в результирующем массиве следует использовать метод reshape (M, 1) .
источник
data[:, 8:9]
. Это занимает восемь столбцов, но не удаляет дополнительное измерение.Просто:
Столбцы не обязательно должны быть в порядке:
источник
Еще одна вещь, на которую следует обратить внимание при выборе столбцов из массива ND с помощью такого списка:
Если вы удаляете измерение (например, выбрав только одну строку), результирующий массив будет (по некоторым причинам) переставлен . Так:
источник
Ты можешь использовать :
extracted_data = data.ix[:,['Column1','Column2']]
источник
Я думаю, что решение здесь не работает с обновлением версии Python, один из способов сделать это с помощью новой функции Python:
который дает вам желаемый результат.
Документацию вы можете найти здесь: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_numpy.html#pandas.DataFrame.to_numpy
источник
Вы также можете использовать extractData = data ([:, 1], [:, 9])
источник