一维情况:
-
>>> import numpy as np
-
>>> a = np.array([ 2, 3, 33])
-
>>> a
-
array([ 2 3 33 ])
-
>>> print a
-
[ 2 3 33 ]
-
>>> a.shape
-
( 3, )
输出a的shape会显示一个参数,就是这个list中元素个数
创建时也可以直接使用np.zeros([1]),这样会创建全0的list,或者np.ones([1]),不需要我们输入数据,见下图:
-
>>> a = np.zeros([ 1])
-
>>> b = np.ones([ 1])
-
>>> print a
-
[ 0. ]
-
>>> print b
-
[ 1. ]
二维情况:
-
>>> a = np.array([[ 2, 2, 2],[ 3, 3, 3]])
-
>>> print a
-
[[ 2 2 2 ]
-
[ 3 3 3 ]]
-
>>> a.shape
-
( 2, 3)
二维情况中array创建的可以看做二维数组(矩阵),注意创建时需要使用2个[ ],
输出a的shape显示的(2,3)相当于有2行,每行3个数
,使用np.ones创建结果如下:
-
>>> a = np.ones([ 2, 3])
-
>>> print a
-
[[ 1. 1. 1. ]
-
[ 1. 1. 1. ]]
多维情况:
多维情况统一使用np.ones进行创建,先看三维情况:
-
>>> a = np.ones([ 1, 1, 1])
-
>>> print a
-
[[[ 1.]]]
-
>>> a = np.ones([ 1, 1, 2])
-
>>> print a
-
[[[ 1. 1.]]]
-
>>> a = np.ones([ 1, 2, 1])
-
>>> print a
-
[[[ 1.]
-
[ 1.]]]
-
>>> a = np.ones([ 2, 1, 1])
-
>>> print a
-
[[[ 1.]]
-
-
[[ 1.]]]
-
>>> a = np.ones([ 2, 3, 2])
-
>>> print a
-
[[[ 1. 1.]
-
[ 1. 1.]
-
[ 1. 1.]]
-
-
[[ 1. 1.]
-
[ 1. 1.]
-
[ 1. 1.]]]
然后看四维情况:
-
>>> a = np.ones([ 1, 1, 1, 1])
-
>>> print a
-
[[[[ 1.]]]]
-
>>> a = np.ones([ 1, 1, 1, 2])
-
>>> print a
-
[[[[ 1. 1.]]]]
-
>>> a = np.ones([ 1, 1, 2, 1])
-
>>> print a
-
[[[[ 1.]
-
[ 1.]]]]
-
>>> a = np.ones([ 1, 2, 1, 1])
-
>>> print a
-
[[[[ 1.]]
-
-
[[ 1.]]]]
-
>>> a = np.ones([ 2, 1, 1, 1])
-
>>> print a
-
[[[[ 1.]]]
-
-
-
[[[ 1.]]]]
-
>>> a = np.ones([ 2, 2, 1, 1])
-
>>> print a
-
[[[[ 1.]]
-
-
[[ 1.]]]
-
-
-
[[[ 1.]]
-
-
[[ 1.]]]]
然后来看一下特定输出:
-
>>> import numpy as np
-
>>> m = np.ones([ 2, 3, 2, 3])
-
>>> print m
-
[[[[ 1. 1. 1.]
-
[ 1. 1. 1.]]
-
-
[[ 1. 1. 1.]
-
[ 1. 1. 1.]]
-
-
[[ 1. 1. 1.]
-
[ 1. 1. 1.]]]
-
-
-
[[[ 1. 1. 1.]
-
[ 1. 1. 1.]]
-
-
[[ 1. 1. 1.]
-
[ 1. 1. 1.]]
-
-
[[ 1. 1. 1.]
-
[ 1. 1. 1.]]]]
-
>>> print m[ 1,:,:,:]
-
[[[ 1. 1. 1.]
-
[ 1. 1. 1.]]
-
-
[[ 1. 1. 1.]
-
[ 1. 1. 1.]]
-
-
[[ 1. 1. 1.]
-
[ 1. 1. 1.]]]
-
>>> print m[:, 1,:,:]
-
[[[ 1. 1. 1.]
-
[ 1. 1. 1.]]
-
-
[[ 1. 1. 1.]
-
[ 1. 1. 1.]]]
-
>>> print m[:,:, 1,:]
-
[[[ 1. 1. 1.]
-
[ 1. 1. 1.]
-
[ 1. 1. 1.]]
-
-
[[ 1. 1. 1.]
-
[ 1. 1. 1.]
-
[ 1. 1. 1.]]]
-
>>> print m[:,:,:, 1]
-
[[[ 1. 1.]
-
[ 1. 1.]
-
[ 1. 1.]]
-
-
[[ 1. 1.]
-
[ 1. 1.]
-
[ 1. 1.]]]
然后print m[1,:,:,:],:代表默认值(就是一开始你输入时指定的值),这句代码相当于输出2个包中的第1个包(从0开始计数),这个包里面有3个小包,小包里面是2*3的二维数组,所以结果就是上面的~
然后print m[:,1,:,:],相当于输出2个大包,每个大包输出第1个小包,小包里面是2*3的二维数组
然后print m[:,:,1,:],相当于输出2个大包,每个大包输出3个小包,小包里面是二维数组的第1行
然后print m[:,:,:,1],相当于输出2个大包,每个大包输出3个小包,小包里面是1*2的二维数组
其他结果可以自己去试试~
总结:采用np.array()创建时需要几个维度就要用几个[ ]括起来,这种创建方式要给定数据;采用np.ones()或np.zeros()创建分别产生全1或全0的数据,用a.shape会输出你创建时的输入,创建时输入了几个维度输出就会用几个[ ]括起来,shape的返回值是一个元组,里面每个数字表示每一维的长度