要将 np_timestamp_raw 数组快速保存为 txt 文件,可以使用 NumPy 的 savetxt 方法。这是最直接高效的方式:
import numpy as np
# 假设 np_timestamp_raw 是你的 (100, 7) numpy 数组
np.savetxt('timestamp_data.txt', np_timestamp_raw)
如果需要控制格式或分隔符,可以添加参数:
# 使用逗号分隔,保留4位小数
np.savetxt('timestamp_data.txt', np_timestamp_raw,
delimiter=',', fmt='%.4f')
关键点:
- 这是纯 NumPy 操作,速度极快
- 默认使用空格分隔,科学计数法格式
- 对于 (100,7) 这样的小数组几乎是瞬间完成
如果需要更快但牺牲可读性的二进制格式,可以考虑 .npy 格式:
np.save('timestamp_data.npy', np_timestamp_raw)
# 使用逗号分隔,保留4位小数 np.savetxt('timestamp_data.txt', np_timestamp_raw, delimiter=',', fmt='%.4f') 我希望保存的数据格式都是整数类型; 不希望存在小数和科学计数法
如果希望将 np_timestamp_raw 保存为纯整数格式(无小数、无科学计数法),可以使用 fmt='%d'(%d 表示十进制整数格式)。
修改后的代码:
import numpy as np
# 保存为整数格式,逗号分隔
np.savetxt('timestamp_data.txt',
np_timestamp_raw,
delimiter=',',
fmt='%d') # %d 表示整数
关键点:
fmt='%d'强制所有数据以整数形式存储(如果原数据是浮点数,会直接截断小数部分)。- 如果数据本身是浮点型,但你想四舍五入后再保存,可以先用
np.round()处理:np.savetxt('timestamp_data.txt', np.round(np_timestamp_raw).astype(int), # 先四舍五入再转整数 delimiter=',', fmt='%d') - 避免科学计数法:
%d或%i都能确保不使用科学计数法。
示例输出格式:
123,456,789,101112,131415,161718,192021
222324,252627,282930,313233,343536,373839,404142
...
这样就能确保所有数据都是整数,并且以逗号分隔。
np.savetxt( 这个函数会覆盖之前的txt文件吗?
是的,**np.savetxt() 默认会覆盖已存在的同名文件**,不会追加数据。
关键行为:
- 如果
timestamp_data.txt不存在 → 创建新文件并写入数据。 - 如果
timestamp_data.txt已存在 → 直接覆盖原文件,不会保留旧内容。 - 不会自动追加数据(除非手动以追加模式打开文件)。
如果需要追加数据(而不是覆盖)
可以使用 Python 标准文件操作 + np.savetxt 的 file 参数:
with open('timestamp_data.txt', 'ab') as f: # 'ab' 表示二进制追加模式
np.savetxt(f, np_timestamp_raw, delimiter=',', fmt='%d')
注意:
- 用
'ab'(二进制追加)模式避免换行符问题(Windows/Linux 兼容)。 - 每次运行会在文件末尾新增数据,不会覆盖原有内容。
总结
| 需求 | 方法 |
|---|---|
| 覆盖写入(默认) | np.savetxt('file.txt', data) |
| 追加数据 | with open('file.txt', 'ab') as f: np.savetxt(f, data) |
| 避免覆盖 | 检查文件是否存在,或改用新文件名(如 np.savetxt(f'file_{time.time()}.txt', data)) |
9993

被折叠的 条评论
为什么被折叠?



