跳转至

广播机制

实例

arr_a:
[[0 1 2 3]
 [4 5 6 7]]

列插入:
[[11]
 [12]
 [13]]
广播前
[[ 0  1 11 12 13  2  3]
 [ 4  5           6  7]]
arr_2:
[[ 0  1 11 12 13  2  3]
 [ 4  5 11 12 13  6  7]]

列插入:
[11 12]
没触发广播
arr_3:
[[ 0  1 11  2  3]
 [ 4  5 12  6  7]]

行插入:
[[11]
 [12]]
广播前
[[ 0  1  2  3]
 [ 4  5  6  7]
 [11         ]
 [12         ]]
arr_4:
[[ 0  1  2  3]
 [ 4  5  6  7]
 [11 11 11 11]
 [12 12 12 12]]

展平插入:
[11 12 13]
arr_5:
[ 0  1 11 12 13  2  3  4  5  6  7]
上面内容由以下代码输出:
arr_a = np.arange(8).reshape(2, 4)   
print(f"arr_a:\n{arr_a}")  

arr_2 = np.insert(arr_a, 2, [[11], [12], [13]], axis=1)  
print(f"列插入的:\n{np.array([[11], [12], [13]])}\narr_2:\n{arr_2}")  

arr_3 = np.insert(arr_a, 2, [11, 12], axis=1)  
print(f"列插入的:\n{np.array([11, 12])}\narr_3:\n{arr_3}")  

arr_4 = np.insert(arr_a, 2, [[11], [12]], axis=0)  
print(f"行插入的:\n{np.array([[11], [12]])}\narr_4:\n{arr_4}")

arr_5 = np.insert(arr_a, 2, [11, 12, 13])  
print(f"展平插入的:\n{np.array([11, 12, 13])}\narr_5:\n{arr_5}")

axis 参数(轴参数)的作用

axis = 0 为行操作,表示输入的数组 不用旋转

axis = 1 为列操作,表示输入的数组 要旋转

axis = None(即不填axis)为展平操作,要求输入一维数组,先展平原数组再插入行向量,返回一维数组