Python/Numpy: Using np.tile to tile 2D array of boolean mask arrays

Viewed 68

I have a 2D array of boolean mask arrays:

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

for which I am trying to use np.tile(maskArr, (3, 1)) to get the following output:

[  
   [[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]],
]

but I'm getting this:

[[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]]

Any suggestions for how I can fix this? It works fine with arr = [1,2,3]:

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

You can use:

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

Prints:

[[[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]]]
Related