Python中如何将二维list转换为矩阵?

当 list 很长时候 几万行

例如 data =[[...],[...],...] len(data) 为 40000 len(data[0]) 为 200

numpy.mat(data).shape 结果为(1 , 40000)

不能转为矩阵,预期结果为( 40000 , 200 )

但是 len(data)比较小的时候,能得到预期结果

求助!!!


Python中如何将二维list转换为矩阵?
9 回复
# 最直接的方式是使用NumPy库,这是科学计算的标准工具
import numpy as np

# 示例二维列表
two_dim_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

# 转换为NumPy矩阵(实际上是ndarray)
matrix = np.array(two_dim_list)
print(matrix)
print(type(matrix))  # <class 'numpy.ndarray'>

# 如果你确实需要matrix类型(NumPy已不推荐使用)
matrix_obj = np.matrix(two_dim_list)
print(matrix_obj)
print(type(matrix_obj))  # <class 'numpy.matrix'>

关键点:

  1. np.array() 创建的是ndarray,这是NumPy的标准多维数组,功能更全面
  2. np.matrix() 创建的是专门的矩阵类型,但NumPy官方已建议不再使用
  3. 转换后可以使用矩阵运算:matrix.T(转置)、matrix.dot()(点积)等

建议: 直接用np.array(),别用np.matrix()

不调用函数试试

不调用函数怎么转。。本来是二维 list ,转为 matix

看看你的 data 里是不是有某一行不是 200 个元素

同 4 楼. 另外. 你应该把为什么不能转换的异常信息给出来吧…

好的我看看

转的结果 shpae (1 , 40000),没抛异常

是这个原因 thank you

回到顶部