在python中从矩阵中提取列作为向量

在python中从矩阵中提取列作为向量,python,numpy,matrix,Python,Numpy,Matrix,我有一个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)

我有一个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

您可以添加
[]

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])

col1=result[:,1]
是1D数组,因此您可以看到它的形状
(57,)

可以使用单个列将其转换为二维阵列,具体操作如下:

col1[:, np.newaxis]   # shape: (57, 1)
如果需要具有单行的二维阵列,可以执行以下操作:

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

是,它将返回形状数组(57,)。如果您想成为(57,1),可以通过重塑()来实现


“AUC123如果它是工作的,你会考虑投票和接受吗?”是的,我会的,但是还有9分钟的窗口,在W= NP.0([57)]打印(W.Frand)(57,…)中,我也遇到了同样的问题。我怎样才能得到(57,1)?@hydra123
np.zeros([57])[:,None]。shape
这就是所谓的numpy广播
col1=(result[:, 1]).reshape(-1,1)