Python 从一维列表中创建二维列表
我对Python有点陌生,我想将1D列表转换为2D列表,给定此Python 从一维列表中创建二维列表,python,matrix,Python,Matrix,我对Python有点陌生,我想将1D列表转换为2D列表,给定此矩阵的宽度和长度 假设我有一个list=[0,1,2,3],我想做一个2x2矩阵 如何从列表中获取矩阵[[0,1],[2,3]宽度=2,长度=2?试试这样的方法: In [53]: l = [0,1,2,3] In [54]: def to_matrix(l, n): ...: return [l[i:i+n] for i in xrange(0, len(l), n)] In [55]: to_matrix(l,
矩阵的宽度
和长度
假设我有一个list=[0,1,2,3]
,我想做一个2x2
矩阵
如何从列表中获取矩阵[[0,1],[2,3]
宽度
=2,长度
=2?试试这样的方法:
In [53]: l = [0,1,2,3]
In [54]: def to_matrix(l, n):
...: return [l[i:i+n] for i in xrange(0, len(l), n)]
In [55]: to_matrix(l,2)
Out[55]: [[0, 1], [2, 3]]
我认为您应该使用numpy,它是专门为处理矩阵/数组而构建的,而不是列表列表。看起来是这样的:
>>> import numpy as np
>>> list_ = [0,1,2,3]
>>> a = np.array(list_).reshape(2,2)
>>> a
array([[0, 1],
[2, 3]])
>>> a.shape
(2, 2)
避免调用变量列表
,因为它会隐藏内置名称 NumPy的内置重塑功能可用于执行此任务
import numpy
length = 2
width = 2
_list = [0,1,2,3]
a = numpy.reshape(a, (length, width))
numpy.shape(a)
只要您更改列表中的值,并相应地更新“长度”和“宽度”的值,您就不会收到任何错误。可能重复-为什么使用numpy比使用root的方法更好?这取决于您需要2D结构做什么,但当您以几乎任何方式使用矩阵时,numpy都会更有效,方便灵活。ValueError:无法将大小为1000000的数组重塑为形状(2,2)。重塑(-1,2)将完成Trickan的另一个例子,说明我为什么喜欢Python!谢谢@root!请问您为什么添加了与@wim内容相同的新答案?你补充了什么,他的没有?