Python 从数组中删除元素

Python 从数组中删除元素,python,arrays,numpy,Python,Arrays,Numpy,我有两个数组,我正在尝试使用concatenate组合它们: a = np.array(([1,2], [5,6], [9,10])) b = np.array(([3,4], [7,8], [11,12], [13,14], [17,18])) c = np.concatenate((a,b), 1) 这不起作用,因为数组的长度不同。因此,我使用len比较两个阵列的长度,然后根据最小长度确定c的长度: alength = len(a) blength = len(b) lengthforc

我有两个数组,我正在尝试使用concatenate组合它们:

a = np.array(([1,2], [5,6], [9,10]))
b = np.array(([3,4], [7,8], [11,12], [13,14], [17,18]))
c = np.concatenate((a,b), 1)
这不起作用,因为数组的长度不同。因此,我使用len比较两个阵列的长度,然后根据最小长度确定c的长度:

alength = len(a)
blength = len(b)
lengthforc = min(alength, blength)
在此示例中,C的最小
长度为3。因此,我尝试使用if语句通过删除最后两行(元素)来减少b的长度

除非有其他方法,否则如何修改此if语句以执行我想要的操作(因为要删除的行数将发生变化)?。最终阵列应为:

>>> print c
  [[ 1  2  3  4]
  [ 5  6  7  8]
  [ 9 10 11 12]]

我不确定我是否正确地解决了问题(在我的解决方案中,我只使用了列表), 但就这么简单吗

a = [[1,2], [5,6], [9,10]]
b = [[3,4], [7,8], [11,12], [13,14], [17,18]]
c = []
for x,y in zip(a,b):
    c.append(x+y)

我不确定我是否正确地解决了问题(在我的解决方案中,我只使用了列表), 但就这么简单吗

a = [[1,2], [5,6], [9,10]]
b = [[3,4], [7,8], [11,12], [13,14], [17,18]]
c = []
for x,y in zip(a,b):
    c.append(x+y)

尝试
hstack

a = np.array(([1,2], [5,6], [9,10]))
b = np.array(([3,4], [7,8], [11,12], [13,14], [17,18]))
end = min(a.shape[0], b.shape[0])
np.hstack((a[:end], b[:end]))
结果:

array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12]])
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
编辑

如果不需要NumPy阵列,可以使用以下列表:

a_list = [[1,2], [5,6], [9,10]]
b_list = [[3,4], [7,8], [11,12], [13,14], [17,18]]
只有一行:

[x + y for x, y in zip(a_list, b_list)]
结果:

array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12]])
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]

尝试
hstack

a = np.array(([1,2], [5,6], [9,10]))
b = np.array(([3,4], [7,8], [11,12], [13,14], [17,18]))
end = min(a.shape[0], b.shape[0])
np.hstack((a[:end], b[:end]))
结果:

array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12]])
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
编辑

如果不需要NumPy阵列,可以使用以下列表:

a_list = [[1,2], [5,6], [9,10]]
b_list = [[3,4], [7,8], [11,12], [13,14], [17,18]]
只有一行:

[x + y for x, y in zip(a_list, b_list)]
结果:

array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12]])
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]