numpy.fromfile 似乎无法读取大文件
numpy.fromfile seems to be unable to read large files
我想为我的项目编写一些非常简单的 python 帮助工具,它正在从 ECG 记录中读取二进制数据。我在某个地方发现 numpy.fromfile 是最合适的工具,所以我写道:
#!/usr/bin/env python3
import sys
import numpy as np
arrayOfNums = np.fromfile(sys.argv[1], 'short')
print("Converting " + sys.argv[1] + "...")
conversionOutput = open("output", "x")
conversionOutput.write(np.array2string(arrayOfNums, separator=' '))
conversionOutput.close()
print("Conversion done.")
我这样做是为了写入未分隔的 2 字节记录的数据。输入文件对于一个简单的文本文件(超过 7MB)来说有点大,但我认为还不够大,不会引起 numpy 问题。
我在文件中得到的输出:[-32243 -32141 -32666 ... -32580 -32635 -32690]
为什么中间有点?它似乎可以转换它,但几乎忽略了它应该保存的所有内容。任何帮助将不胜感激。
Numpy 可以正确读取您的文件。为了避免长时间显示,numpy 使用点:
import numpy as np
a = np.random.random(10000)
输出:
>>> a
array([0.20902653, 0.80097215, 0.06909818, ..., 0.5963183 , 0.94024005,
0.31870234])
>>> a.shape
(10000,)
a
包含 10000 个值,而不仅仅是显示的 6 个值。
更新
要显示完整输出:
import sys
np.set_printoptions(threshold=sys.maxsize)
print(a)
我想为我的项目编写一些非常简单的 python 帮助工具,它正在从 ECG 记录中读取二进制数据。我在某个地方发现 numpy.fromfile 是最合适的工具,所以我写道:
#!/usr/bin/env python3
import sys
import numpy as np
arrayOfNums = np.fromfile(sys.argv[1], 'short')
print("Converting " + sys.argv[1] + "...")
conversionOutput = open("output", "x")
conversionOutput.write(np.array2string(arrayOfNums, separator=' '))
conversionOutput.close()
print("Conversion done.")
我这样做是为了写入未分隔的 2 字节记录的数据。输入文件对于一个简单的文本文件(超过 7MB)来说有点大,但我认为还不够大,不会引起 numpy 问题。
我在文件中得到的输出:[-32243 -32141 -32666 ... -32580 -32635 -32690]
为什么中间有点?它似乎可以转换它,但几乎忽略了它应该保存的所有内容。任何帮助将不胜感激。
Numpy 可以正确读取您的文件。为了避免长时间显示,numpy 使用点:
import numpy as np
a = np.random.random(10000)
输出:
>>> a
array([0.20902653, 0.80097215, 0.06909818, ..., 0.5963183 , 0.94024005,
0.31870234])
>>> a.shape
(10000,)
a
包含 10000 个值,而不仅仅是显示的 6 个值。
更新
要显示完整输出:
import sys
np.set_printoptions(threshold=sys.maxsize)
print(a)