numpy中reshape方法详解

(转载请注明出处)

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

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

参数:

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

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

order : 可选范围——{‘C’, ‘F’, ‘A’}。使用索引顺序读取a的元素,并按照索引顺序将元素放到变换后的的数组中。“C”指的是用类C写的读/索引顺序的元素,横着读,横着写,优先读/写一行。“F”是指用FORTRAN类索引顺序读/写元素,竖着读,竖着写,优先读/写一列。注意,“C”和“F”选项不考虑底层数组的内存布局,只引用索引的顺序。“A”竖着读,横着写。这里可能听起来有点模糊,下面会给出示例。如果不进行order参数的设置,默认为C。

示例:

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

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
r2=r
r3=r
r1=r1.reshape((3,4),order='F')
r2=r2.reshape((3,4),order='A')
r3=r3.reshape((3,4),order='C')

r=r1
r1=r.reshape((-1,1),order='C')
r2=r.reshape((-1,1),order='F')
r3=r.reshape((-1,1),order='A')

最后结果

扫描二维码关注公众号,回复: 5538937 查看本文章

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

猜你喜欢

转载自blog.csdn.net/zhanggonglalala/article/details/79356653
今日推荐