извлечение столбца как вектора из матрицы в Python - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть CSV-файл, который я преобразовываю в матрицу с помощью следующей команды:

reader = csv.reader(open("spambase_X.csv", "r"), delimiter=",")
x = list(reader)
result = numpy.array(x)
print(result.shape)   #outputs (57,4601)

Теперь я хочу извлечь первый столбец результата матрицы, который я делаю с помощьюследующее:

col1=(result[:, 1])

**print(col1.shape)        #outputs (57,)**

Почему не печатается как (57,1).Как я могу это сделать?

TIA

Ответы [ 3 ]

0 голосов
/ 14 сентября 2018

col1 = result[:, 1] является массивом 1D, таким образом, вы видите, что форма его (57, ).

Вы можете преобразовать его в двумерный массив с одним столбцом, выполнив:

col1[:, np.newaxis]   # shape: (57, 1)

Если вам нужен 2D-массив с одной строкой, вы можете сделать:

col1[np.newaxis, :]   # shape: (1, 57)
0 голосов
/ 14 сентября 2018

да, он вернет массив формы (57,). Если вы хотите быть как (57,1), вы можете сделать это с помощью reshape ().

col1=(result[:, 1]).reshape(-1,1)
0 голосов
/ 14 сентября 2018

Вы можете добавить []

result[:,[1]].shape
Out[284]: (2, 1)

Ввод данных

result
Out[285]: 
array([[1, 2, 3],
       [1, 2, 3]])

Дополнительная информация

result[:,[1]]
Out[286]: 
array([[2],
       [2]])
result[:,1]
Out[287]: array([2, 2])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...