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