python中的shape计算

今天开始自学机器学习,python语言也是从零开始,其中一个函数shape()困惑了好久才弄明白,特地来分享一下,有错误之处请指出。
首先一些观点认为:A为矩阵,A.shape为输出矩阵A的行数与列数,A.shape[0]为输出行数,A.shape[1]为输出列数

>>> import numpy
>>> A=mat([[1,2,3],[4,5,6]])
>>> A.shape
(2L, 3L)
>>> A.shape[0]
2L
>>> A.shape[1]
3L

可以看到,矩阵A的行数与列数确实为2与3
然而A.shape[0]的用法为输出行数,为什么参数是0而不是别的数呢?
一些资料说,shape[x]内的参数x为第x+1维的长度,这就可以解释为什么输出行数的参数为0了。假如A矩阵由m行组成,每一行由n个数字组成,那么A矩阵的第一维长度为m,第二维长度为n。
下面为一些例子:
1.一维的数组

>>> A=array([1,2,3])
>>> A
array([1, 2, 3])
>>> A.shape
(3L,)

一维的长度就足以表示此数组。

2.二维的数组

>>> B=array([[1,2,3],[4,5,6]])
array([[1, 2, 3],
       [4, 5, 6]])
>>> B.shape
(2L, 3L)

二维的长度宽度就足以表示此数组。

3.三维或更高维的数组

>>> C=array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
>>> C
array([[[ 1,  2,  3],
        [ 4,  5,  6]],

       [[ 7,  8,  9],
        [10, 11, 12]]])
>>> C.shape
(2L, 2L, 3L)

三维的长度宽度高度就足以表示此数组,以此类推,从而可以找到N维数组的某一维长度。


PS:第一次发博客,还不是很会用markdown ~>_<~+

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值