在Python中将列表列表转换为数组类型

在Python中将列表列表转换为数组类型,python,numpy,numpy-ndarray,mlxtend,Python,Numpy,Numpy Ndarray,Mlxtend,我有一个这样的矩阵,想把它转换成数组进行处理。怎么做 [[25 3 0 1 0 2 1] [ 1 21 0 0 0 0 0] [ 0 3 18 0 0 0 0] [ 1 0 0 35 2 0 0] [ 0 0 0 4 27 2 0] [ 0 0 0 0 1 27 0] [ 1 1 0 0 0 0 34]] 我知道它应该是这样的形式 [[25, 3, 0, 1, 0, 2, 1], [ 1, 21,

我有一个这样的矩阵,想把它转换成数组进行处理。怎么做

[[25  3  0  1  0  2  1]
 [ 1 21  0  0  0  0  0]
 [ 0  3 18  0  0  0  0]
 [ 1  0  0 35  2  0  0]
 [ 0  0  0  4 27  2  0]
 [ 0  0  0  0  1 27  0]
 [ 1  1  0  0  0  0 34]]
我知道它应该是这样的形式

[[25,  3,  0,  1,  0,  2,  1],
 [ 1, 21,  0,  0,  0,  0,  0],
 [ 0,  3, 18,  0,  0,  0,  0],
 [ 1,  0,  0, 35,  2,  0,  0],
 [ 0,  0,  0,  4, 27,  2,  0],
 [ 0,  0,  0,  0,  1, 27,  0],
 [ 1,  1,  0,  0,  0,  0, 34]]
通常我要做的是手动将数组转换为上述形式并调用

class = np.array([[28,  3,  0,  0,  5,  2,  1],
 [ 6, 25 , 0,  2,  2,  8,  0],
 [ 0 , 1 ,51 , 0,  0,  0,  0],
 [ 5 , 2 , 0 ,25, 12,  2,  2],
 [ 1 , 0 , 0,  2, 40,  6,  0],
 [ 0 , 0 , 0  ,0,  1, 48,  0],
 [ 2 , 1,  0  ,0 , 1,  1, 51]])

假设矩阵存储在字符串上,且始终为整数,则可以执行以下操作:

重新导入
将numpy作为np导入
“我的清单=”“”
[[25  3  0  1  0  2  1]
[ 1 21  0  0  0  0  0]
[ 0  3 18  0  0  0  0]
[ 1  0  0 35  2  0  0]
[ 0  0  0  4 27  2  0]
[ 0  0  0  0  1 27  0]
[ 1  1  0  0  0  0 34]]
"""
行=[]
对于过滤器中的行(len,map(str.strip,my_list.split(“\n”)):
行.append([int(v)代表re.findall中的v(r“\b[0-9]+\b”,行)])
np_行=np.数组(行)
那么,

>>np\u行
数组([[25,3,0,1,0,2,1],
[ 1, 21,  0,  0,  0,  0,  0],
[ 0,  3, 18,  0,  0,  0,  0],
[ 1,  0,  0, 35,  2,  0,  0],
[ 0,  0,  0,  4, 27,  2,  0],
[ 0,  0,  0,  0,  1, 27,  0],
[ 1,  1,  0,  0,  0,  0, 34]])

我不确定导入矩阵时使用的格式,这里是基于字符串的矩阵的解决方案

from ast import literal_eval

s = '''
[[25  3  0  1  0  2  1]
 [ 1 21  0  0  0  0  0]
 [ 0  3 18  0  0  0  0]
 [ 1  0  0 35  2  0  0]
 [ 0  0  0  4 27  2  0]
 [ 0  0  0  0  1 27  0]
 [ 1  1  0  0  0  0 34]]
'''
s = s.replace(" [","[").replace("[ ","[")
s = ", ".join(s.split())
ast.literal_eval(s)

# Out[12]: 
# [[25, 3, 0, 1, 0, 2, 1],
#  [1, 21, 0, 0, 0, 0, 0],
#  [0, 3, 18, 0, 0, 0, 0],
#  [1, 0, 0, 35, 2, 0, 0],
#  [0, 0, 0, 4, 27, 2, 0],
#  [0, 0, 0, 0, 1, 27, 0],
#  [1, 1, 0, 0, 0, 0, 34]]

或者在一行中:

ast.literal_eval(", ".join(s.replace(" [","[").replace("[ ","[").split()))

此列表是否以字符串形式存储在变量中?矩阵来自何处?它是哪种格式?如果要将其复制到python中,则该语法无效。@user567879是否从文件中读取矩阵?中间带逗号的块是列表列表列表,最后的
np.array
会正确转换它。第一个块看起来像数组的
str
显示,一个多行字符串(但没有引号)。@Marco Yes它作为字符串存储在变量中