解释numpy多维数组

时间:2017-12-11 09:10:52

标签: python arrays numpy multidimensional-array

我是使用numpy进行数值计算的新手。我很难理解尺寸超过2的数组。有没有办法解释多维数组? e.g:

>>> import numpy as np
>>> arr1 = np.arange(24).reshape(2,3,2,2)
>>> arr1
array([[[[ 0,  1],
         [ 2,  3]],

        [[ 4,  5],
         [ 6,  7]],

        [[ 8,  9],
         [10, 11]]],


       [[[12, 13],
         [14, 15]],

        [[16, 17],
         [18, 19]],

        [[20, 21],
         [22, 23]]]])

任何解释,参考建立直觉? 编辑: 我想知道如何用。的输出来解释.shape的输出。即在上面的例子中(2,3,2,2)什么是最右边的2指的是3或其他2. numpy如何处理这个?

1 个答案:

答案 0 :(得分:0)

这不是一个直接的答案,但是当我开始使用多维数组时,我最大的困难在于可视化大长流列表和括号的全部内容。我脑子里想到的是3D和4D阵列的样子,但目前的表现与我所描绘的不符。为了帮助我查看数据结构,我写了几个函数来将结构重新排列成我能理解的形式。

我对你的问题是......做下面的任何演示,帮助你更好地理解或可视化结构?我可以在编辑中提供支持代码,如果其中任何一个有用的话。

<Page enableScrolling="false">
  <IconTabHeader>
    <items><!-- ...  --></items>
  </IconTabHeader>
  <ScrollContainer
    horizontal="false"
    vertical="true"
    height="100%"
  >
    <!-- Your scrollable content -->
  </ScrollContainer>
</Page>

或演示文稿选项2

arr1 = np.arange(24).reshape(2,3,2,2)

Sample array...
-shape (2, 3, 2, 2), ndim 4
-------------------------
-(0, + (3, 2, 2)
  .  0  1    4  5    8  9  
  .  2  3    6  7   10 11  

-------------------------
-(1, + (3, 2, 2)
  . 12 13   16 17   20 21  
  . 14 15   18 19   22 23  

很抱歉不能直接回答您的问题,但通常“直接”答案并不是解决根本问题所需要的,