首页 > 编程笔记 > Python笔记 阅读:6

NumPy reshape()数组重塑的用法(附带实例)

数组重塑实际是更改数组的形状,例如,将原来 2 行 3 列的数组重塑为 3 行 4 列的数组。在 NumPy 中主要使用 reshape() 方法。

NumPy一维数组重塑

一维数组重塑就是将数组重塑为多行多列的数组。

【实例 1】将一维数组重塑为二维数组。创建一个一维数组,然后通过 reshape() 方法将其改为 2 行 3 列的二维数组,程序代码如下:
import numpy as np          # 导入 numpy 模块
n = np.arange(6)            # 创建一维数组
print(n)
n1 = n.reshape(2, 3)        # 将数组重塑为 2 行 3 列的二维数组
print(n1)
运行程序,结果如下:

[0 1 2 3 4 5]
[[0 1 2]
 [3 4 5]]

需要注意的是,数组重塑是基于数组元素不发生改变的情况下进行的,重塑后的数组所包含的元素个数必须与原数组的元素个数相同;如果元素个数不一致,程序就会报错。

【实例 2】将一行古诗(1 行 20 列的数组)转换为 4 行 5 列的二维数组形式,效果如下图所示:


图 1 数组重塑示意图

程序代码如下:
import numpy as np          # 导入 numpy 模块

# 创建字符串数组
n = np.array(["床", "前", "明", "月", "光", "疑", "是", "地", "上", "霜",
              "举", "头", "望", "明", "月", "低", "头", "思", "故", "乡"])
n1 = n.reshape(4, 5)        # 将一维数组重塑为 4 行 5 列的二维数组
print(n1)
运行程序,结果如下:

[['床' '前' '明' '月' '光']
['疑' '是' '地' '上' '霜']
['举' '头' '望' '明' '月']
['低' '头' '思' '故' '乡']]

NumPy多维数组重塑

多维数组重塑同样使用 reshape() 方法。

【实例 3】将 2 行 3 列的二维数组重塑为 3 行 2 列的二维数组,程序代码如下:
import numpy as np
n = np.array([[0, 1, 2], [3, 4, 5]])  # 创建二维数组
print(n)
n1 = n.reshape(3, 2)                  # 将数组重塑为 3 行 2 列的二维数组
print(n1)
运行程序,结果如下:

[[0 1 2]
[3 4 5]]
[[0 1]
[2 3]
[4 5]]

相关文章