NumPy修改数组形状
数组的形状取决于其每个轴上的元素个数,也就是数组的维度。在数组的操作中,常常要修改数组的形状。在 NumPy 中,修改数组的形状可直接用一个正整数元组来设置数组的维度,或者用 reshape() 函数和 resize() 函数来设置维度。
用元组设置维度
用元组设置维度修改数组形状的方法如下:数组名.shape = (x0,x1,x2,…,xn)
参数 x0,…,xn 表示数组中每个维度上的大小,例如 arr.shape=(3,4) 表示将 arr 数组修改成 3 行 4 列数组,利用该方法会改变原数组 arr 的形状。reshape() 函数
用 reshape() 函数是改变数组形状最常用的方法,reshape() 函数的参数为一个正整型元组,分别指定数组在每个维度上的大小。用 reshape() 函数修改数组形状的方法如下:数组名.reshape(x0,x1,x2,…,xn)
参数 x0,…,xn 表示数组中每个维度上的大小。例如 arr.reshape(3,4) 生成一个 3 行 4 列新数组,而原数组 arr 不会改变。如果指定的维度和数组的元素数目不吻合,则函数将抛出异常。resize() 函数
该函数可返回指定大小的新数组。如果新数组的大小大于原始数组的大小,则包含原始数组中的元素的重复副本,该函数修改数组形状的方法如下:数组名.resize(x0,x1,x2,…,xn)
参数 x0,…,xn 表示数组中每个维度上的大小。例如 arr.resize(3,4) 表示将 arr 数组修改成 3 行 4 列数组,原数组 arr 形状改变。这种方法与用 shape 属性修改数组的形状相似。修改数组形状的示例
示例代码 example1 如下。# -*- coding: UTF-8 -*- import numpy as np #创建3行4列数组 arr = np.array([[0,1,2,4],[5,6,7,8],[9,10,11,12]]) #显示数组形状 print(arr.shape) #用shape属性改变数组形状为4行3列 #用shape属性改变数组形状为4行3列 arr.shape = (4,3) #将arr数组形状修改为4行3列 print(arr,arr.shape) #用reshape函数生成形状为2行6列数组arr_b arr_b = arr.reshape((2,6)) #生成形状为2行6列数组arr_b,arr数组没变化 pint(arr,arr_b) #用resizee函数改变数组arr形状为2行6列 arr_c = arr.resize((2,6)) #arr改变形状为2行6列数组,arr_c为none print(arr,arr_c)