numpy.reshape用法(自用)

numpy.reshape(a,newshape,order='C')

     官方文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html

    不改变数据的情况下改变数组的形式

     参数:

      a: 要改变形式的数组

      newshape:(The new shape should be compatible with the original shape)新的形状应该与老的形状相匹配(应该是数据个数不变的意思)

其中的shape为一个列表形式,特殊的是列表可以实现逆序的遍历,即list(-1).-1所代表的含义是我们不用亲自去指定这一维的大小,函数会自动进行计算,但是列表中只能存在一个-1。(如果存在多个-1,就是一个存在多解的方程) 。

-1 的应用:-1 表示不知道该填什么数字合适的情况下,可以选择,由python通过a和其他的值3推测出来,比如,这里的a 是二维的数组,数组中共有6个元素,当使用reshape()时,6/3=2,所以形成的是3行2列的二维数组,可以看出,利用reshape进行数组形状的转换时,一定要满足(x,y)中x×y=数组的个数。

     order:数据写入的顺序 {‘C’, ‘F’, ‘A’}, optional

       使用此索引顺序读取A的元素,并使用此索引顺序将元素放入重新排列的数组中。“C”是指使用C类索引顺序读写元素,最后一个轴索引变化最快,回到第一个轴索引变化最慢。“F”是指使用FORTRAN类索引顺序读/写元素,第一个索引变化最快,最后一个索引变化最慢。注意,“C”和“F”选项不考虑底层数组的内存布局,只引用索引的顺序。“A”是指在Fortran类索引顺序中读或写元素,如果A是FORTRAN在存储器中邻接,则类似于C顺序。 

引用自:https://blog.csdn.net/m0_37592397/article/details/78695318

>>>import numpy as np
>>>a= np.array([1,2,3,4,5,6,7,8])
>>>a
array([1,2,3,4,5,6,7,8])
>>>
  • 1
  • 2
  • 3
  • 4
  • 5

使用reshape()方法来更改数组的形状,使得数组成为一个二维的数组:(数组中元素的个数是2×4=8)

>>>d = a.reshape((2,4))
>>>d
array([[1, 2, 3, 4],
       [5, 6, 7, 8]])
  • 1
  • 2
  • 3
  • 4

进一步提升,可以得到一个三维的数组f:(注意数组中元素的个数时2×2×2=8)

>>>f = a.reshape((2,2,2))
>>>f
array([[[1, 2],
        [3, 4]],

       [[5, 6],
        [7, 8]]])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值