[Python] Porque essa comparação entre arrays não funciona no Python?

Discussão em 'Python' iniciado por Stack, Março 25, 2025.

  1. Stack

    Stack Membro Participativo

    Considere os 3 arrays abaixo
    Retorne o valor do array xarr se o valor for True no array cond. Caso contrário, retorne o valor do array yarr.

    import numpy as np

    xarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5])
    yarr = np.array([2.1, 2.2, 2.3, 2.4, 2.5])
    cond = np.array([True, False, True, True, False])

    #Minha resposta ao problema

    result1 = np.arange(cond.size)
    a=0
    for i in cond:
    if i == True:
    #print(xarr[a])
    result1[a] = xarr[a]
    a=a+1
    else:
    #print(yarr[a])
    result1[a] = yarr[a]
    a=a+1
    print(result1)


    Como resposta eu obtenho isso:

    [1 2 1 1 2]


    Mas gostaria de obter isso:

    [1.1 2.2 1.3 1.4 2.5]


    Fiquei confuso porque quando uso os "prints" que estão dentro dos "if/else", eles retornam o valor que eu desejo, mas quando atribuo eles ao novo "array" eles não vão como imagino.

    Qual a lógica que estou errado ou deixando passar?

    Continue reading...

Compartilhe esta Página