一、多维转一维,一维转多维,多维转多维
原数组.ravel() :多维转一维
原数组.shape=(转换为x行,转换为y列) :一维/多维 转 多维/一维
原数组.reshape(转换为x行,转换为y列) :一维/多维 转 多维/一维
import numpy as np print("----------------np.floor()向下取整-------------------------") a = np.floor(10*np.random.random((3,4))) # np.random.random((3,4)表示在-1和1之间随机取值,构建3行4列的数组 print(a) print(a.shape) print("-----------原数组.ravel():将数组拉平为一维数组-------------") print (a.ravel()) # 将a数组拉平为一维数组 print("-----a.shape = (6, 2)------") a.shape = (6, 2) # 将a数组从一维转换成6行2列的数组 print (a) print("------a.reshape(2,6)-------") b= a.reshape(2,6) # 使用a.reshape()需要有变量接收,否则打印不出来,a.shape=(),不需要变量接收也能打印出来 print("b="," ",b) print("---------a.T---------") print (a.T) # 对数组a进行转置 print("---------a.reshape(3,-1)---------") d = a.reshape(3,-1) # 这里列的位置写-1表示:将数组a转变为3行,列的个数根据总元素个数自动转换,因为a总元素有12个,所以此处会转为4列 print("d="," ",d)
结果图:
二、矩阵变形(宽高变形):np.tile( 原数组 , ( 转换为x行,转换为y列 ) )
import numpy as np print("---------------------一维数组变形---------------------------") a = np.arange(0, 40, 10) # 构建一个从0开始,40结束,步长为10的一维矩阵 print("a=",a) print("-----") b = np.tile(a, (3, 5)) # 将原来矩阵看出一个整体,(3,5)表示以这个整体会基础构建3行,5列的矩阵 print (b) print(" ") print("---------------------二维数组变形-------------------------------") a = np.array([[1,2,3],[4,5,6]]) print("a="," ",a) print("-----") b=np.tile(a,(3,4)) # 将原来矩阵看出一个整体,(3,4)表示以这个整体会基础3行,4列的矩阵 print(b)
结果图: