我想在 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 ] ...
有什么好的写法吗?
最佳答案
使用 np.tile
:
import numpy as np
a = np.array([0, 1])
my_tiled_array = np.tile(a, (3, 3))
结果:
array([[0, 1, 0, 1, 0, 1],
[0, 1, 0, 1, 0, 1],
[0, 1, 0, 1, 0, 1]])
编辑:
正如@DSM 在评论中建议的那样,如果您真的想要一个 3D 数组——我对您的代码示例并不完全清楚——您可以使用:
my_3d_tiled_arr = np.tile(a, (3, 3, 3))
结果:
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]]])
关于python - NumPy 的 : how to fill an array smartly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9741287/