1. numpy 读 ASCII 文本为numpy矩阵
1
2
3
4
5
6
7
8
9
| import numpy as np
try:
c1 = np.loadtxt('data.txt')
# 两列数据的文本
x, fx = np.loadtxt('data2.txt', unpack=True)
except:
print "problem reading data.txt data file"
sys.exit(0)
|
2 读二进制到矩阵
1
2
3
4
| import numpy as np
# read in binary file
d = np.fromfile('pp.rsf@',dtype=np.float32)
|
3. 写ascii 到文本
3.1 用write
函数
1
2
3
4
5
| fp = open("out.txt","w")
for i in range(len(A)):
fp.write("%f,%f\n"%(A(i),B(i)))
fp.close()
|
或者
1
2
3
4
5
6
7
8
9
| # 用with, 这样不用手动写关闭文件了
with open("out.txt", 'w') as fp:
for i in range(len(A)):
fp.write("%f, %f\n"%(A(i),B(i)))
# 这里的write可以用别的格式来写
# 比如
# fp.write(f'{A(i)}, {B(i)} \n')
# 或者
# fp.write('{}, {}\n'.format(A(i), B(i)))
|
3.2 用savetxt
函数
savetxt
更适合于将一个数组或矩阵以ASCII码的形式输出
1
2
3
4
5
| import numpy as np
l1 = np.arange(5)
np.savetxt('001.txt', l1)
|
4. 写二进制到文本
4.1 通用的二进制格式
1
2
| filename = 'd.bin'
d.astype('float32').tofile(filename) # d is np array
|
4.2 Python自己的二进制npy文件
1
2
3
4
5
| import numpy as np
l1 = np.arange(5)
np.save('001.npy', l1)
|