Python 有没有更好的方法用numpy读取矩阵?

Python 有没有更好的方法用numpy读取矩阵?,python,numpy,matrix,Python,Numpy,Matrix,我有一个包含如下矩阵的文本文件 [ 1 2 3 4 5 6 7 8 9 10 11 12 13] [ 14 15 16 17 18 19 20 21 22 23] 我需要一种更快的方法将矩阵读入numpy。我使用reg将矩阵拆分为空格和“]”,然后分别读取到一个numpy数组中,这是一个繁琐的过程。我需要将其存储在numpy中,如下所示: [[ 1 2 3 4 5 6 7 8 9 10 11 12 13], [ 14 15 16 17 18 19 20 21 22 23]] 您无法在

我有一个包含如下矩阵的文本文件

[ 1 2 3 4 5 6 7 8 9 10
  11 12 13] [ 14 15 16
  17 18 19 20 21 22 23]
我需要一种更快的方法将矩阵读入numpy。我使用reg将矩阵拆分为空格和“]”,然后分别读取到一个numpy数组中,这是一个繁琐的过程。我需要将其存储在numpy中,如下所示:

[[ 1 2 3 4 5 6 7 8 9 10 11 12 13], [ 14 15 16 17 18 19 20 21 22 23]]

您无法在
numpy
中获取此值,因为您的数组具有不同长度的行

这是一种将输入转换为列表的暴力方式:

import pandas as pd
from io import StringIO
from ast import literal_eval

mystr = StringIO("""[ 1 2 3 4 5 6 7 8 9 10
  11 12 13] [ 14 15 16
  17 18 19 20 21 22 23]""")

# replace mystr with 'file.csv'
df = pd.read_csv(mystr, header=None)

res = '[' + ''.join([x.replace('  ', ',').replace('[ ', '[')\
                     .replace(' ', ',').replace('][', '],[') for x in df[0]]) + ']'

lst = literal_eval(res)

# [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
#  [14, 15, 16, 17, 18, 19, 20, 21, 22, 23]]

可能有用(仅当您可以稍微更改文本文件内的格式时)?您的输入不是矩阵,因为它的两行中没有相同数量的元素。