如何将 2D np 数组添加到 3D np 数组的前面?

我有一个 3Dnumpy数组,我想在它的前面添加一个 0 的 2D np 数组。


import numpy as np

A = np.zeros(3,3,3)

for i in np.arange(0,2):

    for j in np.arange(0,2):

        for k in np.arange(0,2):

            A[i,j,k] = 10

print(A)

#returns:

 [[[10. 10.  0.]

  [10. 10.  0.]

  [ 0.  0.  0.]]


 [[10. 10.  0.]

  [10. 10.  0.]

  [ 0.  0.  0.]]


 [[ 0.  0.  0.]

  [ 0.  0.  0.]

  [ 0.  0.  0.]]]

我想添加另一个数组 B 以便:


B = np.zeros(3,3)

print(B)

#returns 

[[0. 0. 0.]

 [0. 0. 0.]

 [0. 0. 0.]]


# add B to front of A 

# B + A = 

[[[0.  0.  0.]

  [0.  0.  0.]

  [0.  0.  0.]]


 [[10. 10.  0.]

  [10. 10.  0.]

  [ 0.  0.  0.]]


 [[10. 10.  0.]

  [10. 10.  0.]

  [ 0.  0.  0.]]


 [[ 0.  0.  0.]

  [ 0.  0.  0.]

  [ 0.  0.  0.]]]

我试过 np.append(B,A) 但它返回一个二维数组。


莫回无
浏览 80回答 1
1回答

ibeautiful

您可以使用numpy.vstack并通过重塑您的阵列来做到这一点。例如:import numpy as npa = np.ones((3, 3, 3))b = np.zeros((3, 3))res = np.vstack((b.reshape(1, 3, 3), a))顺便说一句,您可以A更有效地创建数组:import numpy as npA = np.zeros((3,3,3))A[:2, :2, :2] = 10
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python