将值追加到numpy数组

将值追加到numpy数组,numpy,Numpy,我有两个不同的数组b0和b1,其中: b0=[1,2] b1=[3,4] 我想将列表[b0的第一个元素,b1的第一个元素]附加到新数组B中 同样地: 列表[b0的第二个元素,b1的第二个元素]要附加到新数组B中 等等 这就是我的新阵列应该是这样的: 数组([1,3],[2,4]) 下面是我的代码: b0=np.array([1,2]) b1=np.array([3,4]) for val in range(len(b1)): L=[b0[val],b1[val]] B=np.a

我有两个不同的数组b0和b1,其中: b0=[1,2] b1=[3,4]

我想将列表[b0的第一个元素,b1的第一个元素]附加到新数组B中 同样地: 列表[b0的第二个元素,b1的第二个元素]要附加到新数组B中 等等

这就是我的新阵列应该是这样的: 数组([1,3],[2,4])

下面是我的代码:

b0=np.array([1,2])
b1=np.array([3,4])

for val in range(len(b1)):
    L=[b0[val],b1[val]]
    B=np.append(L,axis=0)
print(B)

我缺少位置参数值错误。请帮助我修复它。

如果你坚持使用numpy数组,我会这么做

new = []
for x, y in zip(b0, b1):
    new.append([x, y])

new = np.array(new)
或列表理解

new = np.array([[x,y] for x, y in zip(b0, b1)])
结果:

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

如果你坚持使用numpy数组,我会这么做

new = []
for x, y in zip(b0, b1):
    new.append([x, y])

new = np.array(new)
或列表理解

new = np.array([[x,y] for x, y in zip(b0, b1)])
结果:

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

在我看来,在这里使用np.append不是最方便的方法。您始终可以将python列表转换为np.array,在这种情况下只需使用zip就更容易了

b0=np.array([1,2])
b1=np.array([3,4])
B=np.array(list(zip(b0,b1)))
输出:

>>> B
array([[1, 3],
       [2, 4]])

在我看来,在这里使用np.append不是最方便的方法。您始终可以将python列表转换为np.array,在这种情况下只需使用zip就更容易了

b0=np.array([1,2])
b1=np.array([3,4])
B=np.array(list(zip(b0,b1)))
输出:

>>> B
array([[1, 3],
       [2, 4]])
订单错了:

In [56]: np.vstack((b0,b1))                                                  
Out[56]: 
array([[1, 2],
       [3, 4]])
但您可以将其转置:

In [57]: np.vstack((b0,b1)).T                                                
Out[57]: 
array([[1, 3],
       [2, 4]])
堆栈
是一种更通用的级联器

In [58]: np.stack((b0,b1), axis=1)                                           
Out[58]: 
array([[1, 3],
       [2, 4]])
或与:

In [59]: np.column_stack((b0,b1))                                            
Out[59]: 
array([[1, 3],
       [2, 4]])
在我最近的另一个回答中,有关于组合阵列的更多详细信息:

所有这些,包括
np.append
使用
np.concatenate
,只需首先以不同的方式调整维度
np.append
经常被误用。它不是一个列表附加克隆。不应在循环中重复使用。他们每次都制作一个新的数组,这不是很有效

订单错了:

In [56]: np.vstack((b0,b1))                                                  
Out[56]: 
array([[1, 2],
       [3, 4]])
但您可以将其转置:

In [57]: np.vstack((b0,b1)).T                                                
Out[57]: 
array([[1, 3],
       [2, 4]])
堆栈
是一种更通用的级联器

In [58]: np.stack((b0,b1), axis=1)                                           
Out[58]: 
array([[1, 3],
       [2, 4]])
或与:

In [59]: np.column_stack((b0,b1))                                            
Out[59]: 
array([[1, 3],
       [2, 4]])
在我最近的另一个回答中,有关于组合阵列的更多详细信息:


所有这些,包括
np.append
使用
np.concatenate
,只需首先以不同的方式调整维度
np.append
经常被误用。它不是一个列表附加克隆。不应在循环中重复使用。他们每次都会创建一个新阵列,这不是很有效。

请查看帮助或文档。签名是
numpy.append(arr,values,axis=None)
,因此您需要一个数组
arr
、要附加到
arr
的值
以及可选的
axis
。请查看帮助或文档。签名是
numpy.append(arr,values,axis=None)
,因此您需要一个数组
arr
、要附加到
arr
的值
和可选的
axis