如何将3D numpy数组转换为元组列表?

3

我有一个3D数组,分别存储R、G、B三种颜色信息,其形状为(3,n,m)。我想创建一个元组列表,每个元组表示(r,g,b)。我尝试使用reshape和transpose方法,但并没有达到我期望的效果。

    import numpy as np 
    arr = np.array(
    [[[0, 1],
      [2, 3]],
     [[4, 5],
      [6, 7]],
     [[8, 9],
      [10,11]]]
    )

我希望创建以下这样的列表:

[(0, 4, 8), (1, 5, 9), (2, 6, 10), (3, 7, 11)]
1个回答

1
尝试使用 tolistvstackT
>>> np.vstack(arr.T).tolist()
[[0, 4, 8], [2, 6, 10], [1, 5, 9], [3, 7, 11]]
>>> 

如果你想要元组:
>>> list(map(tuple, np.vstack(arr.T)))
[(0, 4, 8), (2, 6, 10), (1, 5, 9), (3, 7, 11)]
>>> 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接