Numpy.reshape函数解释

Numpy.reshape()与shape函数

  相关知识:tensorflow中利用张量来表示数据,张量是有阶数的,一阶张量就是一个一维向量,二阶张量是矩阵,关于张量的描述更多描述,参考http://blog.csdn.net/u013378306/article/details/56281549这篇博文。shape就是张量的形状,用数组表示,n阶张量对应一个n维的shape,每一阶的元素数目等于相应的维的大小。例如,张量
[[[ 1  2]
  [ 3  4]
  [ 5  6]]

 [[ 7  8]
  [ 9 10]
  [11 12]]]
的shape=(2,3,2).明白了这一点后,reshape()函数和shape[]函数就很好理解了:reshape()函数重新定义了原张量的阶数,shape函数就表示张量的形状。下面看具体用法:

1.Numpy.reshape()

  虽然官网上关于reshape函数的标准格式是numpy.reshape(a, newshape, order='C'),但其实这个函数有两种用法。先看代码:

import numpy as np

a=np.array([1,2,3,4,5,6,7,8,9,10,11,12])
b=np.reshape(a,(2,-1))
c=a.reshape(2,-1)
print 'b='
print b
print 'c='
print c
  结果:
b=
[[ 1  2  3  4  5  6]
 [ 7  8  9 10 11 12]]
c=
[[ 1  2  3  4  5  6]
 [ 7  8  9 10 11 12]]
  可以看到,对数组a进行变换可以用b=np.reshape()或者c=a.reshape()的方式。


2.函数内参数解释

  我们用第一种方式,即b=np.reshape()的方式。值得注意的是标准格式中numpy.reshape(a, newshape, order='C')中的newshape参数和order参数。

newshape参数:

  用法参见以下代码:
import numpy as np

a=np.array([1,2,3,4,5,6,7,8,9,10,11,12])
b=np.reshape(a,(2,-1))
c=np.reshape(a,(2,2,-1))
d=np.reshape(a,(2,3,-1))
print 'b='
print b
print 'c='
print c
print 'd='
print d
  输出:
b=
[[ 1  2  3  4  5  6]
 [ 7  8  9 10 11 12]]
c=
[[[ 1  2  3]
  [ 4  5  6]]

 [[ 7  8  9]
  [10 11 12]]]
d=
[[[ 1  2]
  [ 3  4]
  [ 5  6]]

 [[ 7  8]
  [ 9 10]
  [11 12]]]
 newshape参数用数组表示,以c为例,数组(2,2,-1)就是c的形状,一共有三阶,第三个数字是reshape后数组a中最小单元中元素个数,在这里是3,如果是-1则表示可以自动推测出。

order参数

  是元素排列顺序的参数,一般不用。

2.shape函数

  下面代码展示了该函数的用法:

c=np.array([1,2,3,4,5,6,7,8,9,10,11,12])
c=c.reshape(2,3,2)
print c
print c.shape
输出:
[[[ 1  2]
  [ 3  4]
  [ 5  6]]

 [[ 7  8]
  [ 9 10]
  [11 12]]]
(2, 3, 2)
 即得到张量的形状。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值