Python 将列连接到矩阵(numpy)

Python 将列连接到矩阵(numpy),python,numpy,concatenation,Python,Numpy,Concatenation,我有一个矩阵b,我需要把它的一些列(例如列2,4)放到另一个空矩阵a。基于以下代码: import numpy as np a = np.empty([2, 1]) b = np.array([[1, 8, 6, 3], [3, 0, 7, 4]]) 所以我希望a是这样的: [[8,3][0,4]] 我尝试了np.连接: np.concatenate((a,b[:,1]),axis=0) 但我犯了这个错误: ValueError: all the input arrays must hav

我有一个矩阵
b
,我需要把它的一些列(例如列2,4)放到另一个空矩阵
a
。基于以下代码:

import numpy as np
a = np.empty([2, 1])
b = np.array([[1, 8, 6, 3], [3, 0, 7, 4]])
所以我希望a是这样的:

[[8,3][0,4]]
我尝试了
np.连接

np.concatenate((a,b[:,1]),axis=0)
但我犯了这个错误:

ValueError: all the input arrays must have same number of dimensions
有人能解释一下我该如何修复这个错误吗?或者除了
np.concatenate
之外,还有其他方法可以使用吗


谢谢。

我想你想要的只是

cols = [1, 3]
a = b[:, cols]
为此,不需要初始化空矩阵
a
,也不需要串联

提醒一下:python使用基于0的索引。根据所需的示例解决方案,您可能正在查找列
1、3
,而不是
2、4

如果你真的想连接(例如,如果
a
不是空的,但您想向其添加更多列,则可以按照您的建议执行,但要沿着
axis=1
。尽管此时您正在将列连接到带有未初始化项的空矩阵,但要小心。

使用numpy模块中的函数复制矩阵。
以下是解决方案:

>>> import numpy as np
>>> b = np.array([[1, 8, 6, 3], [3, 0, 7, 4]])
>>> a = b[0::,1::2].copy() 
>>> print a
[[8 3]
[0 4]]
当多维数组被索引时,情况会变得更加复杂,尤其是使用多维索引数组时。
通过了解多维数组中的索引和 你想要的是一个
(2,2)
数组,但是你把
a
初始化为
(2,1)
。你看过
b[:,1]
?我想是
[8,0]
,只需两个您想要的数字。此时请忘记连接
,并将注意力集中在正确索引
b