如何在python中合并2列

如何在python中合并2列,python,numpy,Python,Numpy,假设我使用numpy定义了一个2x2矩阵: array([[1, 2], [2, 3]]) 现在,另一个2x1矩阵: array([[3], [4]]) 如何按列连接这两个矩阵,使其成为: array([[1, 2, 3], [2, 3, 4]]) 如何删除指定列,使其成为 array([[1], [2]]) 有一个numpy.concatenate 或者简单地使用hstack或vstack np.hstack( [ np.arr

假设我使用numpy定义了一个2x2矩阵:

array([[1, 2],
       [2, 3]]) 
现在,另一个2x1矩阵:

array([[3],
       [4]])
如何按列连接这两个矩阵,使其成为:

array([[1, 2, 3],
       [2, 3, 4]])
如何删除指定列,使其成为

array([[1],
       [2]])

有一个
numpy.concatenate

或者简单地使用
hstack
vstack

np.hstack( [ np.array( [ [1,2], [2,3] ] ), np.array( [ [3],[4] ] ) ] )
这些也可用于删除列(连接两个子阵列)-这可用于删除许多列

要删除第i列,您可以将子数组带到此列,并从下一列中,将它们连接起来。例如,要删除第二列(索引
1
):

一般来说

def remove_column( a, i ):
    return np.hstack( [a[:,:i], a[:,(i+1):] ] )
然后

>>> remove_column(a, 1)
array([[1, 3],
       [2, 4]])
>>> remove_column(a, 0)
array([[2, 3],
       [3, 4]])
实际上,正如注释中所指出的,numpy实现了自己的
delete
方法

np.delete(a, 1, 1)
删除第二列

并且可以使用

np.delete(a, [column1, columne2, ..., columnK], 1)
第三个参数是轴说明符,
0
表示行,
1
列,
None
表示整个数组

您可以使用:

移除更容易,只需切片:

>>> c = a[:,:1]
 array([[1],
        [2]])

it report error:ValueError:除了连接轴之外,所有输入数组的维度都必须精确匹配。对于拼写错误,它应该是
axis=1
谢谢。现在使用hstack添加列已成功。但我仍然无法删除指定的列,您能否提供更多详细信息为什么不使用
np。删除
来删除列?
np.delete(a, [column1, columne2, ..., columnK], 1)
>>> import numpy as np
>>> a = np.array([[1,2], [2,3]])
>>> b = np.array([[3], [4]])
>>> np.hstack((a,b))
 array([[1, 2, 3],
        [2, 3, 4]])
>>> c = a[:,:1]
 array([[1],
        [2]])
In [3]: x = np.array([[1, 2], [2, 3]]
In [4]: y = np.array([[3], [4]])
In [9]: z = np.hstack([x, y])

In [10]: z
Out[10]:
array([[1, 2, 3],
       [2, 3, 4]])

In [11]: z[:,:1]
array([[1],
       [2]])