Python reshape() 函数用法

reshape()函数用于在不更改数据的情况下为数组赋予新形状。

1. 语法

numpy.reshape(a, newshape, order=‘C’)

参数名参数解释参数是否必要
a需要 reshape 的数组
newshape新形状应与原始形状兼容。如果是整数,则结果将是该长度的一维数组。一个形状尺寸可以为-1。在这种情况下,该值是根据数组的长度和其余维来推断的。
order使用此索引顺序读取a的元素,并使用此索引顺序将元素放置到重新形成的数组中。'C’意味着使用C样索引顺序读取/写入元素,最后一个轴索引变化最快,回到第一个轴索引变化最慢。'F’意味着使用Fortran样索引顺序读取/写入元素,第一个索引变化最快,最后一个索引变化最慢。注意,'C’和’F’选项不考虑底层数组的内存布局,而只是参考索引的顺序。'A’意味着在Fortran类索引顺序中读/写元素,如果a 是Fortran 在内存中连续的,否则为C样顺序。

需要注意的是,第三个参数一般不用

2. 例子

2.1 Example 1
>>> c=np.array([[2,3,4],[5,6,7]])
>>> c
array([[2, 3, 4],
       [5, 6, 7]])
       
>>> c=c.reshape(3,2)
>>> c
array([[2, 3],
       [4, 5],
       [6, 7]])
2.2 Example 2
>>> import numpy as np
>>> import pandas as pd
>>> c=np.array([[2,3,4],[5,6,7]])
>>> c=c.reshape(2,-2)
>>> c
array([[2, 3, 4],
       [5, 6, 7]])
>>> c=c.reshape(-1,2)
>>> c
array([[2, 3],
       [4, 5],
       [6, 7]])

注意: 这里的负数是模糊控制,负数可以为任何数。比如 reshape(2,-1),固定两行,多少列系统根据元素数量自动计算好;同理,reshape(-2,2): 固定两列,行数自动计算好。若出现了无法整除的情况,系统会报错,比如下面这个例子希望把原数组分成5列:

>>> import numpy as np
>>> import pandas as pd
>>> c=np.array([[2,3,4],[5,6,7]])
>>> c=c.reshape(-1,5)
>>> c

在这里插入图片描述

参考资料:
[1] Python中reshape函数参数-1的意思?
[2] NumPy Array manipulation: reshape() function

  • 75
    点赞
  • 191
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值