我想做一个代码,将数组中的整数转换为给定的基数,并填充它们使它们从相同的大小。这是我从亚历克斯·马尔泰利在stackoverflow代码操纵下面的代码,当我把它应用numpy.vectorize
不起作用,然而它可以用于单一阵列:基数转换的整数数组
def int2base(x, base,size):
ret=np.zeros(size)
if x==0: return ret
digits = []
while x:
digits.append(x % base)
x /= base
digits.reverse()
ret[size-len(digits):]=digits[:]
return ret
vec_int2base=np.vectorize(int2base)
vec_int2base(np.asarray([2,1,5]),base=3,size=3)
与下面的错误而终止:
...
1640 if ufunc.nout == 1:
1641 _res = array(outputs,
-> 1642 copy=False, subok=True, dtype=otypes[0])
1643 else:
1644 _res = tuple([array(_x, copy=False, subok=True, dtype=_t)
ValueError: setting an array element with a sequence.
有没有更好的方法来写矢量的情况下,我在这里丢失了什么。
难道我问错了问题还是什么? :) 似乎没有人有答案。 – Cupitor