我正在从文件中读取数据(数字)到列表中,如下所示:
weight_file = open(model_name, 'r').readlines()
weights = weight_file[6:]
我似乎无法将它们直接读入 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)
关于python - 将字符串列表转换为 numpy 列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27444261/