Numpy:如何巧妙地填充数组?

Nic*_*ati 3 python arrays numpy

我想在numpy中创建一个3D数组,如下所示:

[ 0 1 0 1 0 1
  0 1 0 1 0 1
  0 1 0 1 0 1
  0 1 0 1 0 1
  0 1 0 1 0 1 ] ...
Run Code Online (Sandbox Code Playgroud)

有没有一个很好的方式来写它?

ber*_*nie 7

使用np.tile:

import numpy as np
a = np.array([0, 1])
my_tiled_array = np.tile(a, (3, 3))
Run Code Online (Sandbox Code Playgroud)

结果:

array([[0, 1, 0, 1, 0, 1],
       [0, 1, 0, 1, 0, 1],
       [0, 1, 0, 1, 0, 1]])
Run Code Online (Sandbox Code Playgroud)

编辑:
正如@DSM在评论中建议的那样,如果你真的想要一个3D数组 - 我的代码示例中并不完全清楚 - 你可以使用:

my_3d_tiled_arr = np.tile(a, (3, 3, 3))
Run Code Online (Sandbox Code Playgroud)

结果:

array([[[0, 1, 0, 1, 0, 1],
        [0, 1, 0, 1, 0, 1],
        [0, 1, 0, 1, 0, 1]],

       [[0, 1, 0, 1, 0, 1],
        [0, 1, 0, 1, 0, 1],
        [0, 1, 0, 1, 0, 1]],

       [[0, 1, 0, 1, 0, 1],
        [0, 1, 0, 1, 0, 1],
        [0, 1, 0, 1, 0, 1]]])
Run Code Online (Sandbox Code Playgroud)