簡體   English   中英

在文本文件中寫入 numpy 數組

[英]Writing numpy array in a text file

我在嘗試將 numpy 錯誤寫入文本文件時遇到錯誤。 把問題放在下面的代碼中

import numpy as np

a = np.arange(1,10)
sigma = open("sample",'w')
for row in a:
    np.savetxt(sigma,row)
sigma.close()

給出錯誤ValueError: Expected 1D or 2D array, got 0D array instead

我用這段代碼解決了這個問題:

a = np.arange(1,10)
sigma = open("sample",'w')
np.savetxt(sigma,a, newline="\n")
sigma.close()

但我現在仍然不知道為什么我的第一次嘗試沒有奏效。 為什么我的數組出現 0D? (我使用的是 python 3.9.9)

正如評論中提到的, for循環是你的問題,這是因為當你迭代一個一維數組時,你會得到標量:

import numpy as np

a = np.arange(1,10)
sigma = open("sample",'w')
np.savetxt(sigma,a)
sigma.close()

結果:


1.000000000000000000e+00
2.000000000000000000e+00
3.000000000000000000e+00
4.000000000000000000e+00
5.000000000000000000e+00
6.000000000000000000e+00
7.000000000000000000e+00
8.000000000000000000e+00
9.000000000000000000e+00

第一次嘗試不起作用,因為 a 是一維數組,因此“row”循環遍歷 a 的每個元素,這意味着“row”是一個 0D 數組。 由於 np.savetxt() 僅適用於一維或二維數組,因此失敗。

暫無
暫無

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

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