reshape 订阅
reshape函数是MATLAB中将指定的矩阵变换成特定维数矩阵一种函数,且矩阵中元素个数不变,函数可以重新调整矩阵的行数、列数、维数。函数语法为B = reshape(A,size)是指返回一个和A元素相同的n维数组,但是由向量size来决定重构数组维数的大小。 [1] 展开全文
reshape函数是MATLAB中将指定的矩阵变换成特定维数矩阵一种函数,且矩阵中元素个数不变,函数可以重新调整矩阵的行数、列数、维数。函数语法为B = reshape(A,size)是指返回一个和A元素相同的n维数组,但是由向量size来决定重构数组维数的大小。 [1]
信息
外文名
reshape
属    于
MATLAB函数
类    别
计算机编程
语    法
reshape(A,size)
中文名
reshape
功    能
矩阵变换
应    用
MATLAB
reshapereshape语法
B = reshape(A,m,n)B = reshape(A,m,n,p,...)B = reshape(A,[m n p ...])B = reshape(A,...,[ ],...)B = reshape(A,size)
收起全文
精华内容
下载资源
问答
  • reshape

    2019-01-22 23:26:31
    在学习TensorFlow入门课程的时候,碰到了reshape这个函数,比较神奇,话不多说,直接上干货。 首先,最基本的,比如 arr = [1,2,3,4,5,6,7,8,9] 一个一维的list,长度为9 现在,我想把arr变成一个3*3的矩阵,这就...

    在学习TensorFlow入门课程的时候,碰到了reshape这个函数,比较神奇,话不多说,直接上干货。

    首先,最基本的,比如

    arr = [1,2,3,4,5,6,7,8,9] 一个一维的list,长度为9
    现在,我想把arr变成一个3*3的矩阵,这就可以用的reshape了,两个方法,第一

    arr.reshape(3,3)
    这个很好理解,不多说,重点看第二个方法

    arr.reshape(-1,3)
    这样也可以把arr变成3*3的矩阵,这个-1代表的意思就是,我不知道可以分成多少行,但是我的需要是分成3列,多少行我不关心,不得不感叹,果然是人生苦短,我用python

    最后,看一个实际的例子,在这个数据集里面

    from sklearn.datasets import load_digits 一个图片的数据集
    这个图像的表示方法是1797*64,表示1797张图片,每张图片用一行64个数表示,怎么把这一行的数据取出来呢?就是用的reshape这个函数

    picture_data = data.reshape(-1,8,8,1)
    -1表示不知道,两个8表示8行8列,1表示一维空间(彩色是在处理的时候是三维空间RGB),整短代码就是说,把1797*64这个矩阵,变换成8*8的不知道多少个的矩阵,这样后面就方便用CNN神经网络去处理了


    --------------------- 
    作者:xiongshuai520 
    来源:CSDN 
    原文:https://blog.csdn.net/xiongshuai520/article/details/79743233 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • Reshape

    2018-01-12 15:32:01
    功能简介1.就是变换成特定维数的矩阵2.是按照列的顺序进行转换的,也就是第一列读完,读第二列,下面请看具体例子:代码%% ...B = reshape(A,2,6); C = reshape(A,3,[]); D = reshape(A,[],2);%% 输出结果 A,B,C,D结果

    功能简介

    1.就是变换成特定维数的矩阵

    2.是按照列的顺序进行转换的,也就是第一列读完,读第二列,下面请看具体例子:

    代码

    %% 输入一个矩阵
    A = [1,2,3,4;5,6,7,8;9,10,11,12];
    A = A';
    
    %% 按列扫描元素进行变换
    B = reshape(A,2,6);
    C = reshape(A,3,[]);
    D = reshape(A,[],2);
    
    %% 输出结果
    A,B,C,D

    结果

    A =
    
         1     5     9
         2     6    10
         3     7    11
         4     8    12
    
    
    B =
    
         1     3     5     7     9    11
         2     4     6     8    10    12
    
    
    C =
    
         1     4     7    10
         2     5     8    11
         3     6     9    12
    
    
    D =
    
         1     7
         2     8
         3     9
         4    10
         5    11
         6    12

    总结

    reshape(X,m,n)就是按列扫描的方式将一个矩阵X变成m行n列。

    展开全文
  • Python的reshape的用法:reshape(1,-1)

    万次阅读 多人点赞 2019-05-11 17:22:24
    numpy中reshape函数的三种常见相关用法 reshape(1,-1)转化成1行: reshape(2,-1)转换成两行: reshape(-1,1)转换成1列: reshape(-1,2)转化成两列 numpy中reshape函数的三种常见相关用法 numpy.arange(n)....

    目录

    numpy中reshape函数的三种常见相关用法

    reshape(1,-1)转化成1行:

    reshape(2,-1)转换成两行:

    reshape(-1,1)转换成1列:

    reshape(-1,2)转化成两列



    numpy中reshape函数的三种常见相关用法

    • numpy.arange(n).reshape(a, b)    依次生成n个自然数,并且以a行b列的数组形式显示
    np.arange(16).reshape(2,8) #生成16个自然数,以2行8列的形式显示
    # Out: 
    # array([[ 0,  1,  2,  3,  4,  5,  6,  7],
    #       [ 8,  9, 10, 11, 12, 13, 14, 15]])
    • mat (or array).reshape(c, -1)     必须是矩阵格式或者数组格式,才能使用 .reshape(c, -1) 函数, 表示将此矩阵或者数组重组,以 c行d列的形式表示
    arr.shape    # (a,b)
    arr.reshape(m,-1) #改变维度为m行、d列 (-1表示列数自动计算,d= a*b /m )
    arr.reshape(-1,m) #改变维度为d行、m列 (-1表示行数自动计算,d= a*b /m )

    -1的作用就在此: 自动计算d:d=数组或者矩阵里面所有的元素个数/c, d必须是整数,不然报错)

    (reshape(-1, m)即列数固定,行数需要计算)

    arr=np.arange(16).reshape(2,8)
    arr
    '''
    out:
    array([[ 0,  1,  2,  3,  4,  5,  6,  7],
           [ 8,  9, 10, 11, 12, 13, 14, 15]])
    '''
     
    arr.reshape(4,-1) #将arr变成4行的格式,列数自动计算的(c=4, d=16/4=4)
    '''
    out:
    array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11],
           [12, 13, 14, 15]])
    ''' 
    arr.reshape(8,-1) #将arr变成8行的格式,列数自动计算的(c=8, d=16/8=2)
    '''
    out:
    array([[ 0,  1],
           [ 2,  3],
           [ 4,  5],
           [ 6,  7],
           [ 8,  9],
           [10, 11],
           [12, 13],
           [14, 15]])
    ''' 
    arr.reshape(10,-1) #将arr变成10行的格式,列数自动计算的(c=10, d=16/10=1.6 != Int)
    '''
    out:
    ValueError: cannot reshape array of size 16 into shape (10,newaxis)
    '''
    • numpy.arange(a,b,c)    从 数字a起, 步长为c, 到b结束,生成array
    • numpy.arange(a,b,c).reshape(m,n)  :将array的维度变为m 行 n列。
    np.arange(1,12,2)#间隔2生成数组,范围在1到12之间
    # Out: array([ 1,  3,  5,  7,  9, 11])
     
    np.arange(1,12,2).reshape(3,2)
    '''
    Out: 
    array([[ 1,  3],
           [ 5,  7],
           [ 9, 11]])
    '''

    reshape(1,-1)转化成1行:

    reshape(2,-1)转换成两行:


    reshape(-1,1)转换成1列:

     

    reshape(-1,2)转化成两列

     

      本文参考了 Python的reshape(-1,1)    、Numpy中reshape函数、reshape(1,-1)的含义(浅显易懂,源码实例)

    详内容可以参看reshape的官方文档:

     

    展开全文
  • numpy中reshape方法详解

    万次阅读 多人点赞 2018-02-23 21:29:14
    今天讲一下np.reshape()方法。官方给出的链接https://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html,因为是英文所以很多人不好看,这里给出详细解释。 这个方法是在不改变数据内容的情况下,...

    (转载请注明出处)

    今天讲一下np.reshape()方法。官方给出的链接https://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html,因为是英文所以很多人不好看,这里给出详细解释。

    这个方法是在不改变数据内容的情况下,改变一个数组的格式,参数及返回值解释如下:

    一、参数解释

    首先给出官方的英文解释,当然后续会给出我做的中文解释和理解。

    1、a : 数组——需要处理的数据。

    2、newshape : 新的格式——整数或整数数组,如(2,3)表示2行3列。新的形状应该与原来的形状兼容,即行数和列数相乘后等于a中元素的数量。如果是整数,则结果将是长度的一维数组,所以这个整数必须等于a中元素数量。若这里是一个整数数组,那么其中一个数据可以为-1。在这种情况下,这个个值python会自动从根据第二个数值和剩余维度推断出来。

    3、order的情况相比于前面两个参数有些复杂,这里会用比较大的篇幅来解释,并在后面给出一个比较易懂的示例

        首先做出翻译:order : 可选范围为{‘C’, ‘F’, ‘A’}。使用索引顺序读取a的元素,并按照索引顺序将元素放到变换后的的数组中。如果不进行order参数的设置,默认参数为C。

    (1)“C”指的是用类C写的读/索引顺序的元素,最后一个维度变化最快,第一个维度变化最慢。以二维数组为例,简单来讲就是横着读,横着写,优先读/写一行。

    (2)“F”是指用FORTRAN类索引顺序读/写元素,最后一个维度变化最慢,第一个维度变化最快。竖着读,竖着写,优先读/写一列。注意,“C”和“F”选项不考虑底层数组的内存布局,只引用索引的顺序。

    (3)“A”选项所生成的数组的效果与原数组a的数据存储方式有关,如果数据是按照FORTRAN存储的话,它的生成效果与”F“相同,否则与“C”相同。这里可能听起来有点模糊,下面会给出示例。

    注:FORTRAN和C是两个语言,他们存储数组的方式不同,FORTRSAN为列有限,而C为行优先。在python中默认数组生成的时候是按照C的方式进行存储。但,很多时候我们需要调用Fortran的一些库进行数学计算,所以需要让numpy生成的数组变成按照FORTRAN的方式存储,使用numpy.asfortranarray方法,本博客同时给出了它的官方链接

    二、示例解释

    1、首先随机生成一个4行3列的数组

    import numpy as np
    from numpy import random as nr
    r=nr.randint(0,10,size=(4,3))

     

    2、使用reshape,这里有两种使用方法,可以使用np.reshape(r,(-1,1),order='F'),也可以使用r1=p.reshape((-1,1),order='F'),这里我选择使用第二种方法。通过示例可以观察不同的order参数效果。

    r1=r.reshape((3,4),order='A')
    r2=r.reshape((3,4),order='C')
    r3=r.reshape((3,4),order='F')
    r4=r.reshape((3,4))
    
    print("r",r)
    print("r1",r1)
    print("r2",r2)
    print("r3",r3)
    print("r4",r4)

     

    观察以下输出结果

        通过例子可以看出来,F是优先对列信息进行操作,而C是优先行信息操作。如果未对r的格式进行设置,那么我们rashape的时候以“A”的顺序进行order的话,它的效果和“C”相同。

    3、我们将r的存储方式进行修改,修改为类Fortan的方式进行存储。并做与第2步类似的操作。

    r = np.asfortranarray(r)
    
    r1=r.reshape((3,4),order='A')
    r2=r.reshape((3,4),order='C')
    r3=r.reshape((3,4),order='F')
    r4=r.reshape((3,4))

        一样进行输出,最后结果,可以看出np.asfortranarray(r),并不会对r的输出结果产生影响,但是由于改变了r的存储类型,会改变“A”格式的输出结果,使其与“F”相同。

    三、结尾及道歉

    结尾,第一篇博客比较基础,因为我自己也是个菜鸟,欢迎大家和我交流互相进步

    刚开始写的时候万万没有想到会有这么多人查看,也没注意到其中的一些问题,自己初学理解的也不是很到位,有些地方写的确实有些问题。在这里为之前的错误正式地道歉。经过修改之后,自己感觉可能更清楚一些了,虽然篇幅变长了…

    希望自己之前的错误不会给太多人增加烦恼。

    我已经工作了,python部分内容就不会再更新,。过关于这篇博客,如果有同学不懂,我还是会努力的帮忙解答,祝大家科研顺利。

    展开全文
  • tensorflow的reshape操作tf.reshape()

    万次阅读 多人点赞 2017-12-02 14:47:34
    tensorflow中reshape()函数应用
  • Python中的shape和reshape()

    万次阅读 多人点赞 2018-11-14 14:46:28
    参考博文:...shape()和reshape()都是数组array中的方法 shape() import numpy as np a = np.array([1,2,3,4,5,6,7,8]) #一维数组 print(a.shape[0]) #值为8,因为有8个数据 print...
  • 初学tensorflow,如果写的不对的,请更正,谢谢! tf.reshape(tensor, shape, name=None) 函数的作用是将tensor变换为参数shape的形式。...reshape(t, shape) => reshape(t, [-1]) => reshape(t, shape) 首先将矩阵t
  • npm install --save-dev reshape-tape 将reshape-tape任务添加到您的package.json : { " scripts " : { " tape " : " reshape-tape " } } 将测试添加到您的.tape.js文件: module . exports = { 'reshape...
  • reshape函数

    2020-10-28 09:14:51
    reshape可以控制我们tensor或者矩阵的形状。 常用的就不说了,直接输入目标矩阵的形状即可。 代码 reshape(1,-1)转化成1行: reshape(2,-1)转换成两行: reshape(-1,1)转换成1列: reshape(-1,2)转化成两列 ...
  • 关于reshape

    2021-07-16 14:47:18
    X.reshape(X.shape[0], -1).T和X.reshape(-1,X.shape[0]) 虽然矩阵形式仍然一致但矩阵元素排列完全不同 在降低测试集维度时注意,应使用X.reshape(X.shape[0], -1).T
  • reshape——R语言

    千次阅读 2018-05-26 15:42:18
    reshape
  • python reshape

    2020-12-11 19:43:02
    @python reshape 根据Numpy文档(https://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html#numpy-reshape)的解释: newshape : int or tuple of ints The new shape should be compatible with the...
  • 重塑样板 让你快速创建新的插件。 克隆此存储库: git clone https://github.com/jonathantneal/reshape-boilerplate.git reshape-myplugin ...node reshape-myplugin 回答所有提示。 就是这样!
  • reshape与resize

    2021-03-14 17:35:04
    reshape与resize
  • 成功解决AttributeError: 'DataFrame' object has no attribute 'reshape' 目录 解决问题 解决思路 解决方法 解决问题 AttributeError: 'DataFrame' object has no attribute 'reshape' 解决思路...
  • 语法(1)B=reshape(A,m,n)使用方法:B=reshape(A,m,n)返回m*n矩阵B,它的元素是获得A的行宽度。假设A没有m*n元素,得到一个错误结果。样例:>> A=rand(1,10)结果:A =Columns 1 through 80.1622 0.7943 0.3112 ...
  • 上面的reshape提示错误使用reshape,要执行reshape,请勿更改元素数目,有dalao知道怎么解决么
  • Support for Reshape

    2020-12-27 00:51:54
    <div><p>I know this is probably a long shot but support for <a href="https://github.com/reshape/reshape">Reshape</a> would be amazing. It's like Postcss but for HTML.</p><p>该提问来源于开源项目&#...
  • 成功解决Python的Reshape your data either using array.reshape(-1, 1) if your data has a single feature or 目录 解决问题 解决思路 解决方法 解决问题 今天写关于决策树的一些算法的时候,卧槽,...
  • numpy库reshape用法详解

    2020-09-17 12:51:17
    主要介绍了numpy库reshape用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • numpy reshape

    2017-11-07 10:03:30
    第一次看到reshape函数调用里有-1这个值,没有理解,经过 上网查资料,遂知用法: 我的理解是-1就是一个未知的行或者列数,由系统根据已知条件自己计算来定 举例如下: >>> a = np.arange(6).reshape((3, 2))  ...
  • Numpy中reshape的使用方法为:numpy.reshape(a, newshape, order='C') 参数详解: a: type:array_like(伪数组,可以看成是对数组的扩展,但是不影响原始数组。)(事实证明可以省略不写,但此时reshape方法前是要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 154,645
精华内容 61,858
关键字:

reshape