首页 > 解决方案 > Python/Numpy:使用 np.tile 平铺布尔掩码数组的二维数组

问题描述

我有一个布尔掩码数组的二维数组:

maskArr = [[False, True, False, True], [False, True, True, True], [True, True, False, True]]

我试图用它np.tile(maskArr, (3, 1))来获得以下输出:

[  
   [[False, True, False, True], [False, True, True, True], [True, True, False, True]],
   [[False, True, False, True], [False, True, True, True], [True, True, False, True]],
   [[False, True, False, True], [False, True, True, True], [True, True, False, True]],
]

但我得到了这个:

[[False  True False  True]
 [False  True  True  True]
 [ True  True False  True]
 [False  True False  True]
 [False  True  True  True]
 [ True  True False  True]
 [False  True False  True]
 [False  True  True  True]
 [ True  True False  True]]

关于如何解决这个问题的任何建议?它适用于arr = [1,2,3]

>>> np.tile([1,2,3], (3, 1))
[[1,2,3]
 [1,2,3]
 [1,2,3]]

标签: pythonnumpymultidimensional-array

解决方案


您可以使用:

x = np.tile(maskArr, (3, 1, 1))
print(x)

印刷:

[[[False  True False  True]
  [False  True  True  True]
  [ True  True False  True]]

 [[False  True False  True]
  [False  True  True  True]
  [ True  True False  True]]

 [[False  True False  True]
  [False  True  True  True]
  [ True  True False  True]]]

推荐阅读