簡體   English   中英

numpy數組寫入現有文件

[英]numpy array writing to an existing file

我很困惑為什么這不想寫入輸出文件。 我使用np.loadtxt()從 txt 文件中提取數據我嘗試寫入現有文件,但我收到此錯誤'numpy.float64' object is not iterable'我不是循環遍歷浮點值,而是循環遍歷數組的每個元素,然后將其寫入現有文件。

這是我的代碼

mass = np.loadtxt('C:/Users/Luis/Desktop/data.txt',usecols=0)
with open('test','w') as outfile:
    for i in range(len(mass)):
        outfile.writelines(mass[i])

會不會是with open()的函數不適用於 NumPy 數組? 謝謝

with open()是一個上下文管理器,用於處理文件(適用於所有文件)。 writelines()方法將str作為輸入參數。 所以你必須轉換為writelines(str(mass[i])) 但是temp variable i仍然在行上迭代,但它所取的max value是文件的長度。(文件的長度可能不等於文件中每一行的長度)。 我想這就是你想要的。

mass = np.loadtxt('/content/sample_data/st.txt',usecols=0)
with open('test.txt','w') as outfile:
    for line in mass:
        outfile.writelines(str(line))

writelines用於包含str (Unicode 文本表示)的可迭代對象。 mass必須是一維數組,因為mass[i]是一個標量np.float64 ,它是不可迭代的。 這就是writelines引發該異常的原因。

您還需要將 NumPy 數組的dtype轉換為字符串/文本以寫入文本文件。 numpy.savetxt擅長為一維或二維數組做這件事。

with open("test.txt", "w") as f:
    numpy.savetxt(f, mass)

但是請注意, "w"模式會覆蓋現有文件,因此如果您只想附加數組數據,請使用"a"模式。 請記住在附加的數組數據之間插入換行符"\\n"或某種可識別的分隔符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM