Python-Numpy:reshape函数简介

reshape是改变原有数组/矩阵维度的方法,可以很容易的将一维数组转化为多维数组以及矩阵等。

1. 一维数组转化为多维数组

将一维数组转化为多维数组,方法为,其中num1和num2是指定多维数组的一个维度,具体见下方示例。

上面的示例中,通过将一维数组arr转化为的一个多维数组;同时,通过参数可以指定矩阵的排布方式,C为按行排列,F为按列排布

2. 一维数组转化为多维矩阵

在第一部分,通过语句将一维数组转化为多维数组(一维矩阵),如果将参数改为,就可以将一维数组转化为num1维的num2 x num3矩阵,示例如下:

上面的示例中,将一维数组转化为多维矩阵,该矩阵为2维,每维矩阵均为3 x 3。

3. 多维数组、矩阵的降维

既然一维数组可以通过方法转化为多维的数组或矩阵,当然也可以通过降维的方法将多维的数组或矩阵转化为一维数组,方法为和。

原始矩阵:

flatten方法:

ravel方法:

从上面的示例可以看出,ravel和flatten两个命令都可以实现多维数据的降维,输出结果也完全一致,但是二者转化模式并不一样:ravel只是转化原有的多维数据,转化后的一维数组数据指向的还是原有数据,当修改转化后的一维数组时,原有数组也会发生变化;对于flatten,是将数据拷贝一份输出,修改降维后的一维数组不会改变原有的数据,具体见下方示例。

从上面可以看到,通过修改一维数组第二个值后,原始数组在该位置的数值也发生了变化,而通过修改后原有的数组没有变化,这点在处理数据时应该多加注意。

参考书籍:

Python for Data Analysis. Data Wrangling with Pandas, NumPy, and IPython (2017, O’Reilly)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180908G15VAZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券