有没有一个简单的方法来实现`numpy.base_repr`的宽度?

fcipmucu  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(66)

numpy.binary_reps有一个很好的'width'关键字来设置输出的期望宽度。numpy.base_repr函数确实有一个奇怪的选择'padding'作为关键字。
因此,如果我想有一个特定的宽度,我的基地N输出,而不是

np.base_repr(x,base=N,width=WIDTH)

字符串
我需要做的

np.base_repr(x,base=N,padding=WIDTH-int(np.ceil(np.log(x+1)/np.log(N)))


这至少可以说是次优的。有人知道怎么解决吗?

6ojccjat

6ojccjat1#

如果你要弄字符串的话,那就在那之后再弄?

res = np.base_repr(x, base=N)
res = '0' * (WIDTH - len(res)) + res

字符串

nhn9ugyo

nhn9ugyo2#

解决方法是强制前导'10000...'并截断其中的一个:

base = 16
width = 10
number = 255
shift = base**width # 10...000 in base 'base'
_repr = np.base_repr(number+shift,base)[-width:]
# '00000000FF'

字符串

相关问题