我有一个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