Numpy——reshape函数


维度确定

规则为从前到后,参数由外到内,由行到列

  • values.reshape(2,3) 表示二行三列(2,3)
  • values.reshape(4,2,3) 表示四个(2,3),四个两行三列
  • values.reshape(5,4,2,3) 表示五个(4,2,3)

reshape本质理解

实际上numpy多维数组变化维度时,内存数据没有变化,只是有一个shape参数指明维度即可

  • 每次变化维度的过程可以理解为先将维度还原到(参考:维度确定)一维数组,然后再转化成制定的目标维度
  • 返回的是新对象,但是新老对象数据共享,只有shape等内部属性不一样,所以reshape操作不浪费内存,也不耗费时间,但是需要注意数据共享可能造成的误操作
    • 测试说明: 使用DataFrame.values.reshape()生成的新对象内存数据不共享

特殊参数 “-1

用于智能补齐某一维度,只能有一个参数为-1

  • 除了-1参数外,其余的部分一定要能够被整除
  • -1本身占用一个维度
  • 假设一维数组维度为12
    • (-1, 2) <==> (6, 2) <==> (6, -1)
    • (-1) <==> (12)