значения перезаписывают массив numpy - PullRequest
0 голосов
/ 13 февраля 2019

Я новичок в Python.Любая помощь будет принята.

ret_val генерирует 0 или 1 метку, а евклидово расстояние - это расстояние 0.55 или 0.23 ..

Так что я хочу добавить эти значения в numyмассив вроде:

пример

> 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 голосов
/ 13 февраля 2019

Вам нужно вывести 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...