Numpy:数组维度转换:ravel()、shape=()、reshape()、np.tile()

一、多维转一维,一维转多维,多维转多维

原数组.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)

结果图:

原文地址:https://www.cnblogs.com/wodexk/p/10309431.html