NumPy中的resize和reshape函数 | 您所在的位置:网站首页 › resize函数参数 › NumPy中的resize和reshape函数 |
NumPy中的resize函数和reshape函数
通过实验可以发现,resize函数和reshape函数都各有两种调用方式:若假设x为ndarray的数组,则可以调用np.reshape(x,元组)和x.reshape(元组),resize也是一样,有x.resize()和np.resize()两种方式。 这四种调用的方式只有x.resize()一种会实际改变原数据的形状。下面来看x.shape(): >>> import numpy as np >>> t1=np.arange(12) >>> t1.shape (12,) >>> print(t1.reshape((2,6))) [[ 0 1 2 3 4 5] [ 6 7 8 9 10 11]] >>> print(t1) [ 0 1 2 3 4 5 6 7 8 9 10 11]x.reshape()是最常见的调用方式,这种会返回一个数据和x一致但是形状修改的数组,x原有的形状不会被改变。 >>> t2=np.arange(12) >>> print(np.reshape(t2,(2,6))) [[ 0 1 2 3 4 5] [ 6 7 8 9 10 11]] >>> print(t2) [ 0 1 2 3 4 5 6 7 8 9 10 11]可以看到np.reshape()的方式和x.shape()的结果一致,都会返回一个数据相同、形状修改的数组,原数组的形状未得到改变。 >>> t3=np.arange(12) >>> print(t3.resize((2,6))) None >>> t3 array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]]) >>>与reshape函数不同,x.resize()没有输出值,而且会修改原数组的形状。也就是不会有新数组产生,只是原来的数组变了形状。 >>> t4=np.arange(12) >>> print(np.resize(t4,(2,6))) [[ 0 1 2 3 4 5] [ 6 7 8 9 10 11]] >>> t4 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])np.resize()有输出值,原有数组的形状也没有改变。按结果而言,x.reshape()、np.reshape()、np.resize()函数的功能都一样,返回一个形状改变的数组,原数组形状不变。只有x.resize()会真正改变原数组的形状。 |
CopyRight 2018-2019 实验室设备网 版权所有 |