如何将NumPy数组转储为人类可读格式的csv文件?
当前回答
如果你想写在列:
for x in np.nditer(a.T, order='C'):
file.write(str(x))
file.write("\n")
这里'a'是numpy数组的名称,'file'是要写入文件的变量。
如果你想写一行:
writer= csv.writer(file, delimiter=',')
for x in np.nditer(a.T, order='C'):
row.append(str(x))
writer.writerow(row)
其他回答
要将NumPy数组存储到文本文件中,请从NumPy模块导入savetxt
假设你的Numpy数组名称是train_df:
import numpy as np
np.savetxt('train_df.txt', train_df, fmt='%s')
OR
from numpy import savetxt
savetxt('train_df.txt', train_df, fmt='%s')
你也可以在不使用任何模块的情况下使用纯python来实现。
# format as a block of csv text to do whatever you want
csv_rows = ["{},{}".format(i, j) for i, j in array]
csv_text = "\n".join(csv_rows)
# write it to a file
with open('file.csv', 'w') as f:
f.write(csv_text)
numpy。Savetxt将数组保存到文本文件中。
import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
NumPy .savetxt()方法用于将NumPy数组保存到输出文本文件中,但是默认情况下它将使用科学表示法。
如果希望避免这种情况,则需要使用fmt参数指定适当的格式。例如,
import numpy as np
np.savetxt('output.csv', arr, delimiter=',', fmt='%f')
Tofile是一个方便的函数:
import numpy as np
a = np.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
a.tofile('foo.csv',sep=',',format='%10.5f')
手册页有一些有用的注释:
这是一个方便的函数,用于快速存储数组数据。 关于字节序和精度的信息会丢失,因此此方法不会丢失 对于用于归档数据或传输数据的文件来说,这是一个很好的选择 在具有不同字节序的机器之间。其中一些问题可以 通过将数据输出为文本文件来克服 速度和文件大小。
请注意。此函数不会生成多行csv文件,它将所有内容保存到一行。
推荐文章
- 把if-elif-else语句放在一行中?
- 我如何结合两个数据框架?
- 如何计数列表中唯一值的出现
- 为什么Pycharm的检查人员抱怨“d ={}”?
- 如何JSON序列化集?
- 如何修剪空白的数组值在php
- 在python中,年龄从出生日期开始
- 使用pip安装SciPy
- 在Python中,我应该如何测试变量是否为None, True或False
- 如何在Python中从毫秒创建datetime ?
- 如何解窝(爆炸)在一个熊猫数据帧列,成多行
- 如何使用pip安装opencv ?
- 在pip冻结命令的输出中“pkg-resources==0.0.0”是什么
- 格式y轴为百分比
- 熊猫连接问题:列重叠但没有指定后缀