Is there a available function to convert an int to binary representation as sequence of 0 and 1?
binary_repr produces strings and is not vectorized >>> np.binary_repr(5) '101' >>> np.binary_repr(5, width=4) '0101' >>> np.binary_repr(np.arange(5), width=4) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python26\lib\site-packages\numpy\core\numeric.py", line 1732, in binary_repr if num < 0: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() ------------ That's the best I could come up with in a few minutes: >>> k = 3; int2bin(np.arange(2**k), k, roll=False) array([[ 0., 0., 0.], [ 1., 0., 0.], [ 0., 0., 1.], [ 1., 0., 1.], [ 0., 1., 0.], [ 1., 1., 0.], [ 0., 1., 1.], [ 1., 1., 1.]]) >>> k = 3; int2bin(np.arange(2**k), k, roll=True) array([[ 0., 0., 0.], [ 0., 0., 1.], [ 0., 1., 0.], [ 0., 1., 1.], [ 1., 0., 0.], [ 1., 0., 1.], [ 1., 1., 0.], [ 1., 1., 1.]]) ----------- def int2bin(x, width, roll=True): x = np.atleast_1d(x) res = np.zeros(x.shape + (width,) ) for i in range(width): x, r = divmod(x, 2) res[..., -i] = r if roll: res = np.roll(res, width-1, axis=-1) return res Josef _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion