广播机制
实例
| 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)为展平操作,要求输入一维数组,先展平原数组再插入行向量,返回一维数组