官网解释:https://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html
numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='# ', encoding=None)[source]
fname可以是一个文件路径,比如要保存在/home/test/text.txt,(注意一定要先建一个空的text.txt文件,好吧,似乎不需要),fmt是存储的格式,比如
%d #整型
%.2f #浮点型保留两位小数
delimiter #分隔符,默认是一个空格
举例:
要保存2*2矩阵
mymatrix = mat([[1,2],[2.3,4.4]])
np.savetxt(r'/home/test/text.txt',mymatrix,fmt='%.2f')
结果如下:
当然也可以第一列为整数,第二列为保留两位小数,只要将上面改为:
fmt='%d %.2f' #注意是空格,如果是逗号则列之间以逗号隔开,分号,句号等等则以分号,句号隔开
例外,可以将空格改为逗号隔开,即
np.savetxt(r'/home/test/text.txt',mymatrix,fmt='%.2f',delimiter=",") #或逗号之后加空格,即", "
另外,也可以将mymatrix改为np.column_stack(mymatrix)即将所有数据都列为一行。
例:
生成列:np.column_stack()扩展列
import numpy as np
a = np.array([1,2,3,4])
b = np.array([5,6,7,8])
c = np.array([9,10,11,12])
np.savetxt(r'/home/test.txt', np.column_stack((a,b,c)),fmt='%d')
#第一列和第二列为整数,第三列保留4位小数
#np.savetxt(r'/home/test.txt', np.column_stack((a,b,c)),fmt='%d %d %.4f')
>>>cat test.txt
1 5 9
2 6 10
3 7 11
4 8 12
上面是将a,b,c生成列,要求a,b,c都是相同的行数。
提取的时候使用:
data = np.loadtxt(r'/home/test.txt')
#提取第一行
data[0,:] #or data[0]
#提取第一列
data[:,0]
import numpy as np
a = np.array([1,2,3,4])
b = np.array([5,6,7,8])
c = np.array([9,10,11,12])
np.savetxt(r'/home/test.txt',(a,b,c),fmt='%d')
1 2 3 4
5 6 7 8
9 10 11 12
虽然看上去12跟上面的8,4不在一行,但实际上是同一行的。
上面同样要求a,b,c里面的维数相同。
np.savetxt(r'/home/test.txt',np.r_[a,b,c],fmt='%d')
#or
#通过改成list相加,注意不能用array相加,否则会将数据相加
#np.savetxt(r'/home/test.txt',(list(a)+list(b)+list(c)),fmt='%d')
1
2
3
4
5
6
7
8
9
10
11