Python 了解将新轴添加到三维Numpy阵列时会发生什么
我是Python和Numpy数组的新手 我在Numpy阵列上有48张240x240的灰色图像,形状Python 了解将新轴添加到三维Numpy阵列时会发生什么,python,arrays,numpy,unity3d-unet,Python,Arrays,Numpy,Unity3d Unet,我是Python和Numpy数组的新手 我在Numpy阵列上有48张240x240的灰色图像,形状(48240240) 如果我打印它,打印(我的数组);我明白了: 现在,如果我添加一个新的axis,将这些图像用于U-Net网络,代码如下: a=我的_数组[…,np.newaxis] a的形状是(482402401) 如果我用打印(a)打印它: 为什么阵列发生了很大变化 现在,my_数组中的每个元素都是一个新数组。我想知道这是否会影响神经网络的工作方式。为什么阵列发生了很大变化?您不是刚刚添加了一
(48240240)
如果我打印它,打印(我的数组)
;我明白了:
现在,如果我添加一个新的axis,将这些图像用于U-Net网络,代码如下:
a=我的_数组[…,np.newaxis]
a
的形状是(482402401)
如果我用打印(a)
打印它:
为什么阵列发生了很大变化
现在,my_数组中的每个元素都是一个新数组。我想知道这是否会影响神经网络的工作方式。为什么阵列发生了很大变化?您不是刚刚添加了一个新轴吗?更改后数组的形状是什么?@AMC
a
的形状是(482402401)。因此,现在最后一个维度(显示为列)是大小1,即[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. 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. 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. 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. 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. 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. 0.]]]
[[[[0.]
[0.]
[0.]
...
[0.]
[0.]
[0.]]
...
[[0.]
[0.]
[0.]
...
[0.]
[0.]
[0.]]]]