本文参考自: 原文地址
一维情况:
-
import numpy as np
-
2, 3, 33])a = np.array([
-
-
array([ 2 3 33 ])
-
print a
-
[ 2 3 33 ]
-
-
( 3, )
输出a的shape会显示一个参数,就是这个list中元素个数
创建时也可以直接使用np.zeros([1]),这样会创建全0的list,或者np.ones([1]),不需要我们输入数据,见下图:
-
1])a = np.zeros([
-
1])b = np.ones([
-
print a
-
[ 0. ]
-
print b
-
[ 1. ]
二维情况:
-
2,2,2],[3,3,3]])a = np.array([[
-
print a
-
[[ 2 2 2 ]
-
[ 3 3 3 ]]
-
-
( 2, 3)
二维情况中array创建的可以看做二维数组(矩阵),注意创建时需要使用2个[ ],输出a的shape显示的(2,3)相当于有2行,每行3个数,使用np.ones创建结果如下:
-
2, 3])a = np.ones([
-
print a
-
[[ 1. 1. 1. ]
-
[ 1. 1. 1. ]]
多维情况:
多维情况统一使用np.ones进行创建,先看三维情况:
-
1,1,1])a = np.ones([
-
print a
-
[[[ 1.]]]
-
1, 1, 2])a = np.ones([
-
print a
-
[[[ 1. 1.]]]
-
1, 2, 1])a = np.ones([
-
print a
-
[[[ 1.]
-
[ 1.]]]
-
2, 1, 1])a = np.ones([
-
print a
-
[[[ 1.]]
-
-
[[ 1.]]]
-
2,3,2])a = np.ones([
-
print a
-
[[[ 1. 1.]
-
[ 1. 1.]
-
[ 1. 1.]]
-
-
[[ 1. 1.]
-
[ 1. 1.]
-
[ 1. 1.]]]
然后看四维情况:
-
1,1,1,1])a = np.ones([
-
print a
-
[[[[ 1.]]]]
-
1, 1, 1, 2])a = np.ones([
-
print a
-
[[[[ 1. 1.]]]]
-
1, 1, 2, 1])a = np.ones([
-
print a
-
[[[[ 1.]
-
[ 1.]]]]
-
1, 2, 1, 1])a = np.ones([
-
print a
-
[[[[ 1.]]
-
-
[[ 1.]]]]
-
2, 1, 1, 1])a = np.ones([
-
print a
-
[[[[ 1.]]]
-
-
-
[[[ 1.]]]]
-
2,2,1,1])a = np.ones([
-
print a
-
[[[[ 1.]]
-
-
[[ 1.]]]
-
-
-
[[[ 1.]]
-
-
[[ 1.]]]]
然后来看一下特定输出:
-
import numpy as np
-
2, 3, 2, 3])m = np.ones([
-
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的返回值是一个元组,里面每个数字表示每一维的长度