是否有一个numpy函数将返回一个具有不同原始组合的数组?

时间:2018-02-17 20:08:22

标签: numpy

例如,如果我的数组是

python -m http.server

我希望它返回:

(2,2)
array([[1, 0],
       [0, 1]])

1 个答案:

答案 0 :(得分:1)

您可以使用以下方式一次翻转二进制数:

(np.identity(inp.size, int)^inp.ravel()).reshape(-1, *inp.shape)

或更详细但也更经济:

>>> out = np.empty(2*(inp.size,), inp.dtype)
>>> out[...] = inp.ravel()
>>> np.einsum('ii->i', out)[...]^=1
>>> out = out.reshape(-1, *inp.shape)