Saya punya pertanyaan yang sangat mendasar dalam array numpy:

Array saya terlihat seperti ini:

Array = [["id1", "1.0"],["id2", "0.0"]] 

Saya ingin membaca elemen kedua dari array dan menggantinya dengan karakter lain. Itu seperti

for i in range(0,len(array)):
    if array[i] == "0.0":
        array[i] = "ClassA"
    else
        array[i] = "ClassB"

Bagaimana mencapai ini. Saya tidak dapat membaca "0.0" atau "1.0" dengan benar. Tolong bantu.

0
Doubt Dhanabalu 16 Agustus 2017, 12:22

2 jawaban

Jawaban Terbaik

Anda memiliki dua array di dalam array. Kode di bawah ini harus berfungsi:

array = [["id1", "1.0"],["id2", "0.0"]]

for item in array:
    if item[1] == "0.0":
        item[1] = "ClassA"
    else:
        item[1] = "ClassB"
2
M3RS 16 Agustus 2017, 13:21

Anda kehilangan , dalam definisi larik Anda. array Anda sama dengan ini: [["id11.0"], ["id20.0"]] (string baru saja digabungkan). jika array Anda adalah array numpy maka ini adalah cara mereka diwakili (dicetak). tapi itu tidak berfungsi sebagai input ...

Mulai dari kode Anda, Anda bisa menjadi ini:

array = [["id1", "1.0"], ["id2", "0.0"]]

for i, (id_, number) in enumerate(array):
    if number == "0.0":
        array[i] = [id_, "ClassA"]
    else:
        array[i] = [id_, "ClassB"]

Atau, lebih elegan, gunakan pemahaman daftar:

array = [[id_, "ClassA"] if number == "0.0" else [id_, "ClassB"]  
         for id_, number in array ]
1
hiro protagonist 16 Agustus 2017, 09:32