假设我们有形状(n,n,n)
的规则3D数组,其中填充有True
s。我想创建一个对角线主辅数组。它们应该是阵列。我的方法可以用以下方式描述:
我的方法如下所示:
def dpm(n):
b = np.ones(shape=(n,n,n), dtype=bool)
b[np.eye(n, dtype=bool)] = False
b = b.swapaxes(1,2) # rotate in order to apply masking
b[np.eye(n, dtype=bool)] = False
b = b.swapaxes(1,2) # rotate back
return b
我后来从可视化中注意到,背部旋转是不必要的。输出示例:
>>> dpm(3)
array([[[False, False, False],
[False, True, True],
[False, True, True]],
[[ True, False, True],
[False, False, False],
[ True, False, True]],
[[ True, True, False],
[ True, True, False],
[False, False, False]]])
有没有一种方法可以在不交换轴的情况下屏蔽数组b.swapaxes(1,2)
目前没有回答
相关问题 更多 >
编程相关推荐