在python中从矩阵中提取列作为向量
我有一个csv文件,我正在使用以下命令将其转换为矩阵:在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)
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)