值覆盖numpy数组

时间:2019-02-13 12:05:18

标签: python arrays python-3.x numpy

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

1 个答案:

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