numpy.zeros with multiple dimensions(多维零)

gmol1639  于 12个月前  发布在  其他
关注(0)|答案(4)|浏览(103)
h = numpy.zeros((2,2,2))

字符串
最后的2是做什么用的?它是在创建一个多维数组吗?
输出量:

array([[[ 0.,  0.],
    [ 0.,  0.]],
   [[ 0.,  0.],
    [ 0.,  0.]]])


如果它正在创建多个副本,那么当我执行以下操作时会发生什么?

h = numpy.zeros((2,2,1))


输出量:

array([[[ 0.],
    [ 0.]],
   [[ 0.],
    [ 0.]]])


我知道它是由零填充的,前两个值指定了行和列,那么第三个值呢?提前谢谢你。我试过谷歌,但我不能用词表达我的问题。

uajslkp6

uajslkp61#

通过给出三个参数,你可以创建一个三维数组:
numpy.array((2,2,2))得到一个大小为2x2x2的数组:

0---0
 /   /|
0---0 0
|   |/
0---0

字符串
numpy.array((2,2,1))得到一个大小为2x2x1的数组:

0---0
|   |
0---0


numpy.array((2,1,2))得到一个大小为2x2x1的数组:

0---0
 /   /
0---0


numpy.array((1,2,2))得到一个大小为2x2x1的数组:

0
 /|
0 0
|/
0


在这些表示中,矩阵“可能看起来像numpy.array((2,2))“(2x2阵列),然而底层结构仍然是三维的。

jtoj6r0c

jtoj6r0c2#

(4,3,2)读作:有一个4层楼的建筑物,每层楼有3行2列房间。因此它是一个3D数组。

In [4]: np.zeros((4, 3, 2))                                                                      
Out[4]: 
array([[[ 0.,  0.],                                                                              
        [ 0.,  0.],                                                                              
        [ 0.,  0.]],                                                                             

       [[ 0.,  0.],                                                                              
        [ 0.,  0.],                                                                              
        [ 0.,  0.]],                                                                             

       [[ 0.,  0.],                                                                              
        [ 0.,  0.],                                                                              
        [ 0.,  0.]],                                                                             

       [[ 0.,  0.],                                                                              
        [ 0.,  0.],                                                                              
        [ 0.,  0.]]])

字符串

ewm0tg9j

ewm0tg9j3#

参数指定shape of the array

In [72]: import numpy as np

In [73]: h = np.zeros((2,2,2))

In [74]: h.shape
Out[74]: (2, 2, 2)

In [75]: h = np.zeros((2,2,1))

In [76]: h.shape
Out[76]: (2, 2, 1)

字符串
如果一个数组的形状是(a,b,c),那么它在NumPy的说法中有3个“轴”(或在普通英语中,3个“维度”)。轴0的长度是a,轴1的长度是b,轴2的长度是c
在定义h = np.zeros((2,2,1))时,请注意结果有3个级别的括号:

In [77]: h
Out[77]: 
array([[[ 0.],
        [ 0.]],

       [[ 0.],
        [ 0.]]])


最外面的方括号包含2个项目,中间的方括号也包含2个项目。最里面的方括号只包含一个项目。因此,形状是(2,2,1)。

ljsrvy3e

ljsrvy3e4#

最后一个数字总是表示元素的数量。所有其他的都是数组或列表所以,(3,4,3)意味着我需要一个有3个数组的列表,每个数组包含4个数组,每个数组包含3个元素。

{ [[0,0,0,], [0,0,0], [0,0,0], [0,0,0]],
[[0,0,0], [0,0,0], [0,0,0], [0,0,0]],
[[0,0,0], [0,0,0], [0,0,0], [0,0,0]] }

字符串
2,2,1表示,具有2个数组的列表,每个数组包含2个数组,每个数组具有1 * 元素 *

{ [[0], [0}],
[[0], [0]] }

相关问题