numpy中reshape的用法

自闭症网瘾萝莉.ら 提交于 2019-12-21 12:24:08
numpy.reshape(a, newshape, order='C')[source]

a:数组–需要处理的数据
newshape:新的形狀–整数或整数数组,如(2,3)表示2行3列,新的形状应该与原来的形状兼容,即行数和列数相乘后等于a中元素的数量
order: 可选范围为{‘C’, ‘F’, ‘A’}。使用索引顺序读取a的元素,按照索引顺序将元素放到变换后的数组中。默认参数为C。
1)“C”指的是用类C写的读/寫索引顺序的元素,最后一个维度变化最快,第一个维度变化最慢。以二维数组为例,就是横着读,横着写,按行讀,按行填寫新的形狀。即优先读/写一行。
2)“F”是指用FORTRAN类索引顺序读/写元素,最后一个维度变化最慢,第一个维度变化最快。竖着读,竖着写,优先读/写一列。注意,“C”和“F”选项不考虑底层数组的内存布局,只引用索引的顺序。
3)“A”是所生成的数组的效果与原数组a的数据存储方式有关,如果数据是按照FORTRAN存储的话,它的生成效果与”F“相同,否则与“C”相同。这里可能听起来有点模糊,下面会给出示例。

使用reshhape的例子

  1. r1 = np.reshape(a,(-1,1),order='F')
    r1 = p.reshape((-1,1),order='F')
    注意:通过reshape生成的新数组和原始数组共同使用一个内存块,假如改变原数组的元素,新生成的数组也将发生改变。
    2.reshape(-1,1)
    新数组的元素个数和原数组的元素个数相等,如果有一个维度等于-1的话,Numpy会根据已经指定的其他维度计算该维度的具体值
    3.b=np.reshape(a,[列表元素]),即b=np.reshape(a,[3,2])[3,2]可以这么表示维数
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!