如何将矩阵作为字符串转换为ndarray?

问题描述 投票:0回答:1

我有一个具有以下结构的csv文件:

id;matrix
1;[[1.2 1.3] [1.2 1.3] [1.2 1.3]]

我正在尝试使用numpy.ndarray读取矩阵字段并将其作为pandas.read_csv进行读取,并使df.to_numpy()转换为矩阵,但是shape数组的结果为(1,0)。我在等待shape等于(3,2),如下所示:

matrix = [[1.2 1.3] 
          [1.2 1.3]
          [1.2 1.3]]

我也尝试过numpy.asmatrix,但结果类似于df.to_numpy()

pandas numpy numpy-ndarray
1个回答
0
投票

具有pandas的解决方案

import pandas as pd
from ast import literal_eval
import numpy as np

# read the data
df = pd.read_csv('file.csv', sep=';')

# replace the spaces
df['matrix'] = df['matrix'].str.replace(' ', ',')

# apply literal_eval
df['matrix'] = df['matrix'].apply(literal_eval)

# apply numpy array
df['matrix'] = df['matrix'].apply(np.array)

print(type(df.iloc[0, 1]))

>>> numpy.ndarray
  • 矩阵列的每一行将是一个ndarray
热门问题
推荐问题
最新问题