1 改变数组形状
# 创建一维数组
arr = np.arange(12)
print("创建的一维数组arr为:",arr)
创建的一维数组arr为: [ 0 1 2 3 4 5 6 7 8 9 10 11]
arr_new = arr.reshape(3,4)
print("新的一维数组arr_new为:",arr_new)
新的一维数组arr_new为: [[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
arr_new_ravel = arr_new.ravel()
print("使用ravel展平新的一维数组arr_new后:",arr_new_ravel)
使用ravel展平新的一维数组arr_new后: [ 0 1 2 3 4 5 6 7 8 9 10 11]
arr_new_flatten = arr_new.flatten()
print("使用flatten横向展平新的一维数组arr_new后:",arr_new_flatten)
使用flatten横向展平新的一维数组arr_new后: [ 0 1 2 3 4 5 6 7 8 9 10 11]
arr_new_flatten_F = arr_new.flatten("F")
print("使用flatten纵向展平新的一维数组arr_new后:",arr_new_flatten_F)
使用flatten纵向展平新的一维数组arr_new后: [ 0 4 8 1 5 9 2 6 10 3 7 11]
2 组合数组
# 创建两个数组
arr1 = np.arange(12).reshape(3,4)
arr1: [[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
arr2 = np.arange(9).reshape(3,3)
print("使用hstack函数实现数组横向组合arr1、arr2后:",np.hstack((arr1,arr2)))
使用hstack函数实现数组横向组合arr1、arr2后: [[ 0 1 2 3 0 1 2]
[ 4 5 6 7 3 4 5]
[ 8 9 10 11 6 7 8]]
arr3 = arr1.reshape(4,3)
print("使用vstack函数实现数组纵向组合arr3、arr2后:",np.vstack((arr3,arr2)))
使用vstack函数实现数组纵向组合arr3、arr2后: [[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]
[ 0 1 2]
[ 3 4 5]
[ 6 7 8]]
print("使用concatenate函数实现数组横向组合",np.concatenate((arr1,arr2),axis=1))
使用concatenate函数实现数组横向组合 [[ 0 1 2 3 0 1 2]
[ 4 5 6 7 3 4 5]
[ 8 9 10 11 6 7 8]]
print("使用concatenate函数实现数组纵向组合",np.concatenate((arr3,arr2),axis=0))
使用concatenate函数实现数组纵向组合 [[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]
[ 0 1 2]
[ 3 4 5]
[ 6 7 8]]
3 切割数组
print("使用hsplit函数实现数组横向分割arr1成2列:",np.hsplit (arr1,2)) #竖着切
使用hsplit函数实现数组横向分割arr1成2列: [array([[0, 1],
[4, 5],
[8, 9]]),
array([[ 2, 3],
[ 6, 7],
[10, 11]])]
print("使用vsplit函数实现数组纵向分割arr1成3行:",np.vsplit (arr1,3)) # 横着切
使用vsplit函数实现数组纵向分割arr1成3行: [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
print("使用split函数实现数组横向分割arr1成2列:",np.split(arr1,2,axis=1)) # 竖着切
使用split函数实现数组横向分割arr1成2列: [array([[0, 1],
[4, 5],
[8, 9]]),
array([[ 2, 3],
[ 6, 7],
[10, 11]])]