我正在将文件中的数据(数字)读取到列表中,如下所示:
weight_file = open(model_name, 'r').readlines()
weights = weight_file[6:]
似乎我无法直接将它们读为a,numpy.array
因为文件的第一行包含单词。
因此,现在,weights
我有一个列表,如下所示:[['1 2 3'] ['4 5 6']]
现在,我想将其转换为numpy.array
。我尝试了这个:
weights_np = np.array([])
for weight in weights:
weights_np = np.append(weights_np, weight.split())
它的作用是创建一个向量:[1, 2, 3, 4, 5, 6]
,但我需要将其表示为某种矩阵-类似于列表列表。我怎样才能做到这一点?
谢谢
如果weights_np
是这样的话:
In [23]: weights_np = np.array([1, 2, 3, 4, 5, 6])
那么您可以使用reshape
3列将其设为二维:
In [24]: weights_np = weights_np.reshape((-1, 3))
In [25]: weights_np
Out[25]:
array([[1, 2, 3],
[4, 5, 6]])
但是,更令人满意的方法是使用np.loadtxt
或正确解析文件np.genfromtxt
。(这比使用Python循环和调用要快得多np.append
。)请注意,这些函数具有一个skiprows
可用于跳过前几行的参数:
weights = np.loadtxt(model_name, skiprows=6)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句