我对Python很陌生。任何帮助将不胜感激。
ret_val
正在生成0或1个标签,而欧氏距离正在生成0.55或0.23 ..
所以我想要将这些值添加到numpy数组中,例如:
示例
> arr= np.array([[0.55, 0.23], [0.4, 0.6], [0.8, 0.2]])
> arrdist= np.array([[1, 0], [0, 1], [1, 0]])
我想将其应用于我的代码
我的代码的输出应为:
[[0.7 0.3]
[0.4 0.6]
[0.8 0.2]]
[[1 0]
[0 1]
[1 0]]
但是我的代码输出仅返回最后一个值[[0]] [[37.11052]]
当我尝试运行代码时,值覆盖了数组,我只得到添加在数组上的最后一个元素:
i = 1
for j in range (1,5):
ret_val, euclidean_distance = verifyFace(str(i)+"tst.jpg", str(j)+"train.jpg", epsilon)
if ret_val == '0':
a = 0
print(euclidean_distance)
arr = np.array([[(a)]])
arrdist = np.array([[(euclidean_distance)]])
elif ret_val =='1':
b=1
arr = np.array([[(b)]])
arrdist = np.array([[(euclidean_distance)]])
print(arr)
print(arrdist)
答案 0 :(得分:0)
您需要将arr和arrdist带到for循环之外。将它们初始化为空数组,如下所示:
i = 1
arr = []
arrdist = []
for j in range (1,5):
...
if ...:
...
arr.append([a])
arrdist.append([euclidean_distance])
...
for循环后,如果需要numpy数组,则将列表转换为numpy数组:
arr = np.array(arr)
arrdist = np.array(arrdist)