数据调整

更改形状

arr0 = np.arange(24)
print('arr0: ', arr0, arr0.dtype, arr0.ndim)

# Reshape: 一行变多行
arr46 = arr0.reshape((4, 6))

#  Reshape: 多行变一行
arr46_1 = arr46.reshape(24)
arr46_2 = arr46.reshape((24,))

# ravel:多行变一行
arr2 = arr46.ravel()
print("将多维数组转为一维数组",S arr2, "新数组的形状:", arr2.shape, arr2.ndim)

a.resize(2, 10)
print("resize修改后形状为:", a.shape)

# 矩阵转置转置
arr3 = arr2.T
arr3 = arr2.transpose()
arr3 = arr3.swapaxes(1, 0)

更改类型

print('类型调整')
arr_i1_1 = arr0.astype('i1')
arr_i1_2 = np.array(arr0, dtype=np.int16)
print('arr_i1_1: ', arr_i1_1, arr_i1_1.dtype)
print('arr_i1_2: ', arr_i1_2, arr_i1_2.dtype)

数组堆叠

a = np.vstack((arr0, arr1))
print("沿垂直方向堆叠:", a)

b = np.hstack((arr0, arr1))
print("沿水平方向堆叠", b)

c = np.column_stack((arr2, arr3))
print("沿垂直方向堆叠:", c)

d = np.column_stack((arr2[:, np.newaxis], arr3[:, np.newaxis]))
print("添加新轴然后进行堆叠:", d)

矩阵拆分

print("水平方向拆分:")
data = np.hsplit(arr0, 2)
for item in data:
    print(item)

print("垂直方向拆分:")
data = np.vsplit(arr0, 2)
print(data)

print("指定方向拆分:")
data = np.array_split(arr0, 5)
print(data)