numpy数组列出格式

时间:2013-12-08 06:02:20

标签: python arrays list numpy

如何格式化numpy数组

data1 = np.array([[0,0,0],[0,1,1],[1,0,1],[1,1,0]])

以这种格式列出:

data = [
       [[0,0], [0]],
       [[0,1], [1]],
       [[1,0], [1]],
       [[1,1], [0]]
    ] 

我尝试使用两个for循环

for i in range(len(data)):
    for j in range(3):
       if j == 2:
            va[i] = data1[i][j]
       else:            
            sa[i] = data1[i][j]

但是这给了我一个索引超出界限的错误。我想知道如何解决这个问题

1 个答案:

答案 0 :(得分:5)

使用列表理解和切片:

>>> data1 = np.array([[0,0,0],[0,1,1],[1,0,1],[1,1,0]])
>>> print [[x[:2].tolist(), x[2:].tolist()] for x in data1]
[[[0, 0], [0]],
 [[0, 1], [1]],
 [[1, 0], [1]],
 [[1, 1], [0]]]