我初始化了一个空的numpy数组,我想用一些计算值填充它。我的代码如下:
Distance=np.empty(6,dtype=np.uint8)
for i in range(0,6):
x=hamming_distance(tst,LUT[i])
print 'x={}' .format(x)
print 'type_x={}' .format(type(x))
#Distance.fill(x)
np.append(Distance,x)
print 'Distance={}' .format(Distance)
我得到的输出是
x=1
type_x=<type 'numpy.uint8'>
Distance=[3 3 3 3 3 3]
----------
x=3
type_x=<type 'numpy.uint8'>
Distance=[3 3 3 3 3 3]
----------
x=1
type_x=<type 'numpy.uint8'>
Distance=[3 3 3 3 3 3]
----------
x=1
type_x=<type 'numpy.uint8'>
Distance=[3 3 3 3 3 3]
----------
x=1
type_x=<type 'numpy.uint8'>
Distance=[3 3 3 3 3 3]
----------
x=3
type_x=<type 'numpy.uint8'>
Distance=[3 3 3 3 3 3]
----------
我希望Distance
为[1 3 1 1 1 3]
。我使用了np.fill
,但这不会起作用,因为每次使用x
填充数组时,输出将为[3 3 3 3 3 3]
。
注意:
tst
和LUT[i]
是uint8 numpy数组。
任何人都可以帮我这个吗? 感谢
答案 0 :(得分:0)
我宁愿执行列表理解:
[hamming_distance(tst,LUT[x]) for x in range(0, 6)]
或
np.array([hamming_distance(tst,LUT[x]) for x in range(0, 6)]).astype('uint8')