【问题标题】:Python numpy append ascii data typePython numpy 追加 ascii 数据类型
【发布时间】:2016-04-02 17:59:15
【问题描述】:

我正在开发一个从 mp3 文件中学习的 tensorflow 项目。我已经打开了二进制数据并阅读了它。然后我将二进制文件转换为ascii。然后我已经确认转换了。但是当我将它附加到一个 numpy 数组时,它会附加空白数据。

    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)

当我print(audio_array) 我得到以下信息

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

但是当我去打印 dataset 时,我得到以下信息:

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

【问题讨论】:

    标签: python numpy types ascii


    【解决方案1】:

    np.append(dataset, audio_array) 返回一个新数组;它不会修改dataset。所以改变

    np.append(dataset, audio_array)
    

    dataset = np.append(dataset, audio_array)
    

    【讨论】:

      【解决方案2】:

      尝试使用python的help函数,真的很有帮助。 在这种情况下通知:

      help(numpy.append)
      

      输出: ....

          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.
      

      这意味着传递的数组没有被修改而是被复制,你必须将返回值存储在数据集中:

      dataset = numpy.append(dataset, audio_array)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-14
        • 2015-02-21
        • 2018-09-28
        • 1970-01-01
        • 2013-02-26
        • 2019-01-11
        • 2016-08-31
        • 1970-01-01
        相关资源
        最近更新 更多