如何将NumPy数组转储为人类可读格式的csv文件?
当前回答
我相信你也可以很简单地做到以下几点:
将Numpy数组转换为Pandas数据框架 另存为CSV
例如# 1:
# Libraries to import
import pandas as pd
import nump as np
#N x N numpy array (dimensions dont matter)
corr_mat #your numpy array
my_df = pd.DataFrame(corr_mat) #converting it to a pandas dataframe
例如# 2:
#save as csv
my_df.to_csv('foo.csv', index=False) # "foo" is the name you want to give
# to csv file. Make sure to add ".csv"
# after whatever name like in the code
其他回答
我相信你也可以很简单地做到以下几点:
将Numpy数组转换为Pandas数据框架 另存为CSV
例如# 1:
# Libraries to import
import pandas as pd
import nump as np
#N x N numpy array (dimensions dont matter)
corr_mat #your numpy array
my_df = pd.DataFrame(corr_mat) #converting it to a pandas dataframe
例如# 2:
#save as csv
my_df.to_csv('foo.csv', index=False) # "foo" is the name you want to give
# to csv file. Make sure to add ".csv"
# after whatever name like in the code
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文件,它将所有内容保存到一行。
如前所述,将数组转储到CSV文件的最佳方法是使用.savetxt(…)方法。然而,有一些事情我们应该知道如何正确地去做。
例如,如果您有一个dtype = np.int32 as的numpy数组
narr = np.array([[1,2],
[3,4],
[5,6]], dtype=np.int32)
并使用savetxt as保存
np.savetxt('values.csv', narr, delimiter=",")
它将以浮点指数格式存储数据
1.000000000000000000e+00,2.000000000000000000e+00
3.000000000000000000e+00,4.000000000000000000e+00
5.000000000000000000e+00,6.000000000000000000e+00
您必须使用名为fmt as的参数来更改格式
np.savetxt('values.csv', narr, fmt="%d", delimiter=",")
以原始格式存储数据
以压缩的gz格式保存数据
此外,savetxt可以用于存储.gz压缩格式的数据,这在通过网络传输数据时可能很有用。
我们只需要将文件扩展名更改为.gz, numpy就会自动处理所有事情
np.savetxt('values.gz', narr, fmt="%d", delimiter=",")
希望能有所帮助
你可以用熊猫。它确实需要一些额外的内存,所以它并不总是可行的,但它非常快速和易于使用。
import pandas as pd
pd.DataFrame(np_array).to_csv("path/to/file.csv")
如果你不想要一个头或索引,使用to_csv("/path/to/file.csv", header=None, index=None)