python - 将字符串列表转换为 numpy 列表列表

标签 python list numpy

我正在从文件中读取数据(数字)到列表中,如下所示:

    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.loadtxtnp.genfromtxt 正确解析文件。 (这比使用 Python 循环和调用 np.append 快得多。)请注意,这些函数有一个 skiprows 参数,您可以使用它来跳过前几行:

weights = np.loadtxt(model_name, skiprows=6)

关于python - 将字符串列表转换为 numpy 列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27444261/

相关文章:

Python 读取文件。每行制作一个列表

Python - 将元组应用于功能工具 z.pipe 中的函数

python - sys.getsizeof(list) 返回小于其元素之和的值

r - 如何在列表的元素中存储多个向量?

java - 使用 Java 运行 Python 脚本时出错

python - 将循环转化为列表理解

python - sklearn 问题 : Found arrays with inconsistent numbers of samples when doing regression

python - 如何使用结构化数据填充多个命名字段

python - 如何有效地将大图像分割成多个部分并旋转它们?

python - 体素化 STL 文件?