numpy数组-将3D数组转换为2D数组 [英] Numpy arrays - Convert a 3D array to a 2D array

查看:275
本文介绍了numpy数组-将3D数组转换为2D数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

具有以下3D数组(9,9,9):

Having the following 3D array (9,9,9):

np.arange(729).reshape((9,9,9))

np.arange(729).reshape((9,9,9))

[[[  0   1   2   3   4   5   6   7   8]
  [  9  10  11  12  13  14  15  16  17]
  [ 18  19  20  21  22  23  24  25  26]
  [ 27  28  29  30  31  32  33  34  35]
  [ 36  37  38  39  40  41  42  43  44]
  [ 45  46  47  48  49  50  51  52  53]
  [ 54  55  56  57  58  59  60  61  62]
  [ 63  64  65  66  67  68  69  70  71]
  [ 72  73  74  75  76  77  78  79  80]]
...
  [[648 649 650 651 652 653 654 655 656]
  [657 658 659 660 661 662 663 664 665]
  [666 667 668 669 670 671 672 673 674]
  [675 676 677 678 679 680 681 682 683]
  [684 685 686 687 688 689 690 691 692]
  [693 694 695 696 697 698 699 700 701]
  [702 703 704 705 706 707 708 709 710]
  [711 712 713 714 715 716 717 718 719]
  [720 721 722 723 724 725 726 727 728]]]

如何将其重塑为二维数组(27,27):

How do I reshape it to look like this 2D array (27,27):

[[0 1 2 3 4 5 6 7 8 81 82 83 84 85 86 87 88 89 162 163 164 165 166 167 168 169 170]     
 [9 10 11 12 13 14 15 16 17 90 91 92 93 94 95 96 97 98 171 172 173 174 175 176 177 178 179]
 ...
 [558 559 560 561 562 563 564 565 566 639 640 641 642 643 644 645 646 647 720 721 722 723 724 725 726 727 728]

推荐答案

您可以先将数组重塑为4d数组,交换第二轴和第三轴,然后将其重塑为27 X 27:

You can firstly reshape the array to a 4d array, swap the second and third axises and then reshape it to 27 X 27:

a.reshape(3,3,9,9).transpose((0,2,1,3)).reshape(27,27)

#array([[  0,   1,   2,   3,   4,   5,   6,   7,   8,  81,  82,  83,  84,
#         85,  86,  87,  88,  89, 162, 163, 164, 165, 166, 167, 168, 169,
#        170],
#       [  9,  10,  11,  12,  13,  14,  15,  16,  17,  90,  91,  92,  93,
#         94,  95,  96,  97,  98, 171, 172, 173, 174, 175, 176, 177, 178,
#        179],
#  ... 
#       [558, 559, 560, 561, 562, 563, 564, 565, 566, 639, 640, 641, 642,
#        643, 644, 645, 646, 647, 720, 721, 722, 723, 724, 725, 726, 727,
#        728]])

这篇关于numpy数组-将3D数组转换为2D数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆