I have some binary string s like 001010. I want to convert it to numpy array a where a[i] = np.array([[1], [0]]) if s[i] == '0' and to np.array([[0], [1]]) otherwise.
So I wrote such code:
a = np.empty([len(s), 2, 1])
for i, char in enumerate(s):
if char == '0':
a[i] = np.array([[1], [0]])
elif char == '1':
a[i] = np.array([[0], [1]])
Can it be rewritten to a vectorized form without for-loop in a more numpy way?
My expected output looks like:
array([[[1.],
[0.]],
[[1.],
[0.]],
[[0.],
[1.]],
[[1.],
[0.]],
[[0.],
[1.]],
[[1.],
[0.]]])