np.save将浮点数转换为怪异字符

时间:2019-05-08 11:54:12

标签: python-3.x numpy append

我正在尝试将结果附加到正在进行的csv文件中。每个结果都以nd.array的形式出现:

download_root = 'https://raw.githubusercontent.com/ageron/hanson-ml/master/'
housing_path = os.path.join('datasets','housing')
housing_url = download_root+'datasets/housing/housing.tgz'

def fetch_housing(housing_url = housing_url,housing_path=housing_path):
        if not os.path.isdir(housing_path):
            os.makedirs(housing_path)
        tgz_path = os.path.join(housing_path,'housing.tgz')
        urllib.request.urlretrieve(housing_url,tgz_path)
        housing_tgz = tarfile.open(tgz_path)
        housing_tgz.extractall(path=housing_path)
        housing_tgz.close()

最初我尝试过

[IN]:  Print(savearray)
[OUT]: [[ 0.55219001  0.39838119]]

但是,每次保存时,这都会覆盖旧数据,因此,我尝试像这样附加数据:

np.savetxt('flux_ratios.csv', savearray,delimiter=",")

(在某种意义上)这是追加,但是它将数值数据保存为奇怪的字符,如以下屏幕截图所示:

enter image description here

我不知道这是为什么或如何发生,因此任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

首先,np.save不会写文本,而np.savetxt会写文本。您正在尝试将二进制文件与文本结合在一起,这就是为什么当您尝试读取文件时会出现奇数字符的原因。

您可以将np.save(f, 'a', savearray)更改为np.savetxt(f, savearray, delimiter=',')

否则,您也可以考虑在附加模式下使用pandas.to_csv