在Python中导入数组
我该怎么把一个数组从文件导入到Python(使用numpy.array),而且如果文件不存在的话,还要先创建这个文件。
举个例子,就是把一个矩阵保存到文件里,然后再把它加载回来。
5 个回答
1
(我知道这个问题比较老,但我觉得这对有类似问题的人来说可能会有帮助)
如果你想从一个ASCII/文本文件中加载数据(这种文件的好处是比较容易被人看懂,也方便在其他软件中解析),那么你可以使用numpy.loadtxt:
如果你只是想快速地把numpy数组或矩阵保存到文件中,或者从文件中加载出来,可以看看numpy.save和numpy.load:
10
另一个选择是 numpy.genfromtxt
,比如:
import numpy as np
data = np.genfromtxt("myfile.dat",delimiter=",")
这样做会让 data
变成一个numpy数组,行数和列数会和你文件里的数据一样多。
24
可以看看这个关于 numpy 示例列表 的条目。这里是关于 .loadtxt() 的内容。
>>> from numpy import *
>>>
>>> data = loadtxt("myfile.txt") # myfile.txt contains 4 columns of numbers
>>> t,z = data[:,0], data[:,3] # data is 2D numpy array
>>>
>>> t,x,y,z = loadtxt("myfile.txt", unpack=True) # to unpack all columns
>>> t,z = loadtxt("myfile.txt", usecols = (0,3), unpack=True) # to select just a few columns
>>> data = loadtxt("myfile.txt", skiprows = 7) # to skip 7 rows from top of file
>>> data = loadtxt("myfile.txt", comments = '!') # use '!' as comment char instead of '#'
>>> data = loadtxt("myfile.txt", delimiter=';') # use ';' as column separator instead of whitespace
>>> data = loadtxt("myfile.txt", dtype = int) # file contains integers instead of floats