Pythonnumpy函数:shape⽤法
shape函数的功能是读取矩阵的长度,⽐如shape[0]就是读取矩阵第⼀维度的长度,相当于⾏数。它的输⼊参数可以是⼀个整数表⽰维度,也可以是⼀个矩阵。shape函数返回的是⼀个元组,表⽰数组(矩阵)的维度,例⼦如下:
shape的输⼊参数可以是⼀个整数(表⽰维度),也可以是⼀个矩阵。以下例⼦可能会好理解⼀些:
(1)参数是⼀个数时,返回空:
(2)参数是⼀维矩阵:
(3)参数是⼆维矩阵:
1. 数组(矩阵)只有⼀个维度时,shape只有shape[0],返回的是该⼀维数组(矩阵)中元素的个数,通俗点说就是返回列数,因为⼀维数组只有⼀⾏,⼀维情况中array创建的可以看做list(或⼀维数组),创建时⽤()和[ ]都可以,多维就不可以这样⼦了,这⾥使⽤[ ],请看下例:
>>> a=np.array([1,2])
>>> a
array([1, 2])
>>> a.shape
(2L,)
>>> a.shape[0]
2L
>>> a.shape[1]
Traceback (most recent call last):
File "<pyshell#63>", line 1, in <module>
a.shape[1]
IndexError: tuple index out of range #最后报错是因为⼀维数组只有⼀个维度,可以⽤a.shape或a.shape[0]来访问
>>> a=np.array((1,2))
>>> a
array([1, 2]) #这个使⽤的是两个()包裹,得到的数组和前⾯的⼀样
2.数组有两个维度(即⾏和列)时,和我们的逻辑思维⼀样,a.shape返回的元组表⽰该数组的⾏数与列数,请看下例:
>>> a=np.array([[1,2],[3,4]]) #注意⼆维数组要⽤()和[]⼀起包裹起来,键⼊print a 会得到⼀个⽤2个[]
包裹的数组(矩阵)
>>> a
array([[1, 2],
[3, 4]])
>>> a.shape
(2L, 2L)
>>> b=np.array([[1,2,3],[4,5,6]])
>>> b
array([[1, 2, 3],
[4, 5, 6]])
>>> b.shape
(2L, 3L)
3.当数组是三维时,要⽤⼀个()和两个[]包裹起来,键⼊print a 会得到⼀个⽤3个[]包裹的数组(矩阵),请看下例:
>>> a=np.array([[[1,2],[3,4]]])
>>> a
array([[[1, 2],
[3, 4]]])
>>> a.shape
(1L, 2L, 2L)
这⾥返回的元组表⽰3个维度各包含的元素的个数。
所谓元素,在⼀维时就是元素的个数,⼆维时表⽰⾏数和列数,三维时a.shape【0】表⽰创建的块数,a.shape【1】和a.shape【2】表⽰每⼀块(每⼀块都是⼆维的)的⾏数和列数,举个例⼦:
>>> s([2,2,3])#创建两个2⾏3列的数组(矩阵)
>>> a
array([[[ 1., 1., 1.],
[ 1., 1., 1.]],
[[ 1., 1., 1.],
[ 1., 1., 1.]]])
总结:使⽤np.array()创建数组时,
⼀维的可以直接np.array([1,2,3])或者np.array((1,2,3)),输出(print)时是:
>>> print a
[1 2 3]
外⾯有⼀个[]包裹;
⼆维的要使⽤np.array([[1,2,3],[1,2,3]]),⽤⼀个()和⼀个[]把要输⼊的list包裹起来,输出(print)时是
>>> print a
[[1 2 3]
[1 2 3]]
外⾯有两个[]包裹;
三维的要使⽤np.array([[[1,2,3],[1,2,3]]]),⽤⼀个()和两个[]把要输⼊的list包裹起来,输出(print)时是
python获取数组长度>>> print a
[[[1 2 3]
[1 2 3]]]
外⾯有三个[]包裹;
对于更⾼维的情况以后再研究
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论