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

Is there an ieasy way to implement width for numpy.base_repr?

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)))

至少可以说这是次优的。有人知道解决这个问题的方法吗?

一种解决方法是强制前导“10000...”并截断那个:

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

如果您无论如何都在弄乱字符串,请在之后再做?

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