如何将NumPy数组转储为人类可读格式的csv文件?
当前回答
你可以用熊猫。它确实需要一些额外的内存,所以它并不总是可行的,但它非常快速和易于使用。
import pandas as pd
pd.DataFrame(np_array).to_csv("path/to/file.csv")
如果你不想要一个头或索引,使用to_csv("/path/to/file.csv", header=None, index=None)
其他回答
numpy。Savetxt将数组保存到文本文件中。
import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
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文件,它将所有内容保存到一行。
NumPy .savetxt()方法用于将NumPy数组保存到输出文本文件中,但是默认情况下它将使用科学表示法。
如果希望避免这种情况,则需要使用fmt参数指定适当的格式。例如,
import numpy as np
np.savetxt('output.csv', arr, delimiter=',', fmt='%f')
如果你想保存你的numpy数组(例如your_array = np.array([[1,2],[3,4]]))到一个单元格,你可以先用your_array.tolist()转换它。
然后以正常的方式保存到一个单元格,分隔符=';' csv-file中的单元格看起来像这样[[1,2],[2,4]]
然后你可以像这样恢复你的数组: Your_array = np.array(ast.literal_eval(cell_string))
如果你想写在列:
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)
推荐文章
- 从matplotlib中的颜色映射中获取单个颜色
- Javascript reduce()在对象
- 将Pandas或Numpy Nan替换为None以用于MysqlDB
- 使用pandas对同一列进行多个聚合
- 使用Python解析HTML
- django MultiValueDictKeyError错误,我如何处理它
- 如何在for循环期间修改列表条目?
- Java数组有最大大小吗?
- [].slice的解释。调用javascript?
- 我如何在Django中创建一个鼻涕虫?
- 数组与列表的性能
- 没有名为'django.core.urlresolvers'的模块
- 蟒蛇导出环境文件
- Django - makemigrations -未检测到任何更改
- SQLAlchemy:引擎、连接和会话差异