2016-04-02 26 views
0

Ich arbeite an einem Tensorflow-Projekt, das von MP3-Dateien lernt. Ich habe die Binärdaten geöffnet und gelesen. Dann habe ich die Binärdatei in ASCII umgewandelt. Dann habe ich die Umstellung bestätigt. Aber dann, wenn ich gehe, um es an ein numpy Array anzufügen, fügt es leere Daten an.Python numpy append ascii Datentyp

dataset = np.ndarray(shape=(len(image_files)), 
        dtype=np.dtype('a16')) 
    f = open(image_file, 'rb') 
    temp = f.read() 
    # sound = AudioSegment.from_mp3(image_file) 
    # raw_data = sound._data 
    audio_array = binascii.b2a_base64(temp) 
    # print(audio_array) 
    np.append(dataset, audio_array) 
    print(dataset) 
    print(COUNT) 

wenn ich print(audio_array) bekomme ich folgende

czDne2AxSfpq0DMK9MjrzBw2/F6sMWm/XD47FTN0aXUkq/kIKP2mK3satPUWf9/zTV/t/dTf1Lf//uSBOmNA3pZU6sPOvJ0q0p2PUn2SfFjVAesq8FQrCuo9BUh1f9zRCt//yh7OOuhMogrixdsGrTHd+tGSSaAkPrfqnQ48vFMd6fSBOErLeOipQXe7zkuSt7aFR5J7v3MA3b+gMYpO32b0Kxo/ee/WcN/727XSS/p/1H/8hf5cBCEwWAHBfxdhEKHVomiae73PzIai5... 

Aber dann, wenn ich gehe dataset drucken ich die folgende:

['' '' '' ..., '' '' ''] 
2 

Antwort

1

np.append(dataset, audio_array) gibt ein neues Array; Es ändert sich nicht dataset. So

ändern
np.append(dataset, audio_array) 

zu

dataset = np.append(dataset, audio_array) 
0

Versuchen und verwenden Sie die help Funktion von Python, ist es sehr hilfreich sein. In diesem Fall Hinweis:

help(numpy.append) 

Ausgänge: ....

Returns 
    ------- 
    append : ndarray 
     A copy of `arr` with `values` appended to `axis`. Note that 
     `append` does not occur in-place: a new array is allocated and 
     filled. If `axis` is None, `out` is a flattened array. 

was bedeutet, dass die übergebene Array nicht verändert wird, sondern kopiert, können Sie den Rückgabewert in Dataset speichern müssen:

dataset = numpy.append(dataset, audio_array)