1 import numpy as np
 2 
 3 # 创建一个数组
 4 arr = np.arange(16)
 5 print("arr:\n", arr)
 6 print("arr的形状:", arr.shape)
 7 
 8 # 创建数组的时候不一定能指定其形状
 9 # 创建好之后,可以进行形状的修改
10 
11 # 可以通过shape属性改变形状,元素个数得一致
12 
13 arr.shape = (4, 4)
14 arr.shape = 4, 4
15 arr.shape = [4, 4]
16 # arr.shape = (2, 4)  # 错误,元素个数不同,不能进行形状更改
17 print("改变形状")
18 print(arr)
19 # reshape也可以修改数组的形状
20 # reshape会返回一个新的数组
21 arr = arr.reshape((2, 8))
22 print(arr)
23 print("arr形状修改之后的结果:", arr.shape)
24 
25 # 创建一个高维数组
26 arr = np.arange(16).reshape((4, 4))
27 arr = arr.reshape((-1,1))  # 二维,一列,-1占位
28 print("arr:\n", arr)
29 print("arr的形状:", arr.shape)
30 
31 # 假设高位数组是一个样本——将这个高维数组变成一行
32 # 高维数组的展开
33 res = arr.flatten(order='C')  # 按行展开
34 res = arr.flatten(order='F')  # 按列展开
35 res = arr.ravel()  # 默认按行展开
36 res = arr.ravel(order='F')  # 按列展开
37 
38 print("res 数组展开的结果:", res)