【问题标题】:How can I turn a flat list into a 2D array in python?如何在 python 中将平面列表转换为二维数组?
【发布时间】:2011-09-30 15:38:59
【问题描述】:

我怎样才能打开一个列表,例如:

data_list = [0,1,2,3,4,5,6,7,8,9]

放入一个看起来像这样的数组(我使用的是 numpy):

data_array = [ [0,1] , [2,3] , [4,5] , [6,7] , [8,9] ]

我可以从列表的开头切出段并将它们附加到一个空数组中吗?

谢谢

【问题讨论】:

标签: python list multidimensional-array numpy


【解决方案1】:
>>> import numpy as np
>>> np.array(data_list).reshape(-1, 2)
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7],
       [8, 9]])

reshape 方法在数组上返回一个新的“视图”;它不会复制数据。)

【讨论】:

  • Numpy 是解决此类问题的大锤
  • Numpy 在 OP 的要求中。
【解决方案2】:
def nest_list(list1,rows, columns):    
        result=[]               
        start = 0
        end = columns
        for i in range(rows): 
            result.append(list1[start:end])
            start +=columns
            end += columns
        return result

为:

 list1=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
nest_list(list1,4,4)

输出:

[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-13
    • 2016-09-24
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    相关资源
    最近更新 更多