我有一個numpy.ndarray具有很高的排名 - 比如說,形狀(100,100,100,2)
。將其寫入文本文件的最佳方法是什麼,以便於在其他程序和numpy中導入?導入/導出高等級numpy數組到文本文件
回答
如果您扁平化陣列並在標題中包含陣列形狀(第一行),則可以使用np.savetxt
)。你知道如何當你在其他程序中打開它重塑數組方式:
import numpy as np
a = np.random.rand(100,100,100,2)
np.savetxt('test.txt', a.flatten(), header=str(a.shape))
要導入數據,重塑它,你能做到以下幾點,例如:
import re
with open('test.txt') as f:
shape = tuple(int(num) for num in re.findall(r'\d+', f.readline()))
data = np.loadtxt('test.txt').reshape(shape)
這就是我一直在做的事情。我希望有更好的方法,但這可能是最好的。 – 2014-10-10 20:23:47
你可以使用tofile
,也是numpy
(link to doc)的一部分。要讀取二進制文件,只需使用fromfile
,doc here。
我不確定可移植性,但如果速度很重要,寫入二進制文件是更好的選擇。
import numpy as np
a = np.random.rand(100,100,100,2)
a.tofile('test.txt')
以前有一個關於堆棧溢出的[類似問題](http://stackoverflow.com/q/8775786/1498309)。檢查此以獲取其他選項。 – makra 2014-10-10 20:44:25
問題不在於規模或速度,而在於可移植性。如果我想用另一個程序讀取二進制文件,我會想到一些問題。您的鏈接確實將我指向HDF5格式,這可能符合我的目的。但是,在這個問題中,我確實指定了一個文本文件,這個答案沒有使用。 – 2014-10-10 22:56:13
- 1. 將numpy數組導出到文本文件
- 2. 用numpy導入數組文件
- 3. 如何將n維數組(Python Numpy)導出爲文本文件?
- 4. 蟒蛇 - 使用numpy將數據文件導入到數組中
- 5. 等高線圖導入TXT表文件
- 6. 將數據導出到文本文件
- 7. MSSqlServer2000數據導出到文本文件?
- 8. 導入數據到文本文件
- 9. 將文本文件讀入numpy數組
- 10. 導入和導出到文件
- 11. 導入/導出GEDCOM文件
- 12. 導入文本文件導入SAS
- 13. 將文件導入數組
- 14. 導入導出數據文件
- 15. 將文件導入到R數組中
- 16. 導出數據到文件
- 17. json將數據導入到高級圖
- 18. 將查詢導出到文本文件
- 19. 導出到Rails中的文本文件
- 20. 將VSD(visio)導出到文本文件
- 21. powershell導出到文本文件
- 22. 將Excel導出到文本文件
- 23. 將SELECT導出到文本文件
- 24. 導入輸入文件整數數組
- 25. 導入文本文件
- 26. iPad文本文件導入
- 27. Python導入文本文件
- 28. SAS:導入文本文件
- 29. 將bz2壓縮的二進制文件導入爲numpy數組
- 30. 將聲音文件導入Python作爲NumPy數組(替代audiolab)
[這個答案](http://stackoverflow.com/a/26235114/832621)說明如何使用'np.savetxt()'處理多維數組,你的目的配件.. – 2014-10-10 23:43:45