I have a question. How can I import value like this:
value = 0b1010
to an array like this:
array = np.array([1, 0, 1, 0])
and vice versa?
Advertisement
Answer
np.binary_repr
function turn integers into binary representation string, so you could do:
import numpy as np value = 0b1010 arr = np.array(list(np.binary_repr(value)),dtype=int) print(arr)
Output:
[1 0 1 0]
Reverse direction (as requested by @sai):
arr = np.array([1,0,1,0],dtype=int) value = np.sum(arr * [2**i for i in reversed(range(len(arr)))]) print(value)
Output:
10
Explanation: I build list
with desceding powers of 2
(in this case [8,4,2,1]) using list
comprehension then multiply arr
(i.e. multiply pairwise elements from arr
and said list
) then np.sum
.