从 3d numpy 数组中删除元素

Gun*_*eva -3 python arrays numpy

假设我有如下 3d numpy 数组:

arr = np.ndarray(shape = (3,3,3), dtype=np.float32)


array([[[2.3694278e-38, 2.3694278e-38, 2.3694278e-38],
    [2.3694278e-38, 2.3694278e-38, 2.3694278e-38],
    [2.3694278e-38, 2.3694278e-38, 2.3694278e-38]],

   [[2.3694278e-38, 2.3694278e-38, 2.3694278e-38],
    [2.3694278e-38, 2.3694278e-38, 2.3694278e-38],
    [2.3694278e-38, 2.3694278e-38, 2.3694278e-38]],

   [[2.3694278e-38, 2.3694278e-38, 2.3694278e-38],
    [2.3694278e-38, 2.3694278e-38, 2.3694278e-38],
    [2.3694278e-38, 2.3694278e-38, 2.3694278e-38]]], dtype=float32)
Run Code Online (Sandbox Code Playgroud)

我希望能够从此数组中删除任意行。例如,如果我想删除第一行,我想得到以下数组:

array([[[2.3694278e-38, 2.3694278e-38, 2.3694278e-38],
    [2.3694278e-38, 2.3694278e-38, 2.3694278e-38],
    [2.3694278e-38, 2.3694278e-38, 2.3694278e-38]],

   [[2.3694278e-38, 2.3694278e-38, 2.3694278e-38],
    [2.3694278e-38, 2.3694278e-38, 2.3694278e-38],
    [2.3694278e-38, 2.3694278e-38, 2.3694278e-38]]], dtype=float32)
Run Code Online (Sandbox Code Playgroud)

但是这个问题不仅仅是要删除第一行。我希望能够删除我想要的行。我尝试了np.delete()函数,但无法完全得到我想要的。有人可以展示如何做到这一点吗?

kaa*_*bac 6

你可以试试:

x = np.delete(arr, 0, axis=0)
Run Code Online (Sandbox Code Playgroud)

第一个数组(arr):

   [[[-3.5406988e-10  4.5735579e-41  4.8186282e-38]
  [ 0.0000000e+00 -2.4307778e-10  4.5735579e-41]
  [-2.2672175e-10  4.5735579e-41 -5.2388177e-11]]

 [[ 4.5735579e-41 -1.2597114e-09  4.5735579e-41]
  [-1.2705312e-09  4.5735579e-41 -2.1648838e-10]
  [ 4.5735579e-41 -2.4543772e-19  4.5735579e-41]]

 [[-2.4543917e-19  4.5735579e-41 -6.6015360e-11]
  [ 4.5735579e-41 -2.4544351e-19  4.5735579e-41]
  [-2.4199687e-10  4.5735579e-41 -1.2076065e-09]]]
Run Code Online (Sandbox Code Playgroud)

新数组(x):

[[[ 4.5735579e-41 -1.2597114e-09  4.5735579e-41]
  [-1.2705312e-09  4.5735579e-41 -2.1648838e-10]
  [ 4.5735579e-41 -2.4543772e-19  4.5735579e-41]]

 [[-2.4543917e-19  4.5735579e-41 -6.6015360e-11]
  [ 4.5735579e-41 -2.4544351e-19  4.5735579e-41]
  [-2.4199687e-10  4.5735579e-41 -1.2076065e-09]]]
Run Code Online (Sandbox Code Playgroud)