Python numpy append() 函数用于合并两个数组. 此函数返回一个新的数组,原始数组保持不变。
NumPy 附加() 语法
函数语法是:
1numpy.append(arr, values, axis=None)
- arr 可以是类似数组的对象或 NumPy 数组. 值被附加到该数组的副本
- 值 是类似数组的对象,并被附加到
arr
元素的末端 - 轴 指定值被附加的轴。
Python numpy.append() 例子
让我们来看看NumPy append() 函数的几个例子。
一、两条线的平面化
1import numpy as np
2
3arr1 = np.array([[1, 2], [3, 4]])
4arr2 = np.array([[10, 20], [30, 40]])
5
6# no axis provided, array elements will be flattened
7arr_flat = np.append(arr1, arr2)
8
9print(arr_flat) # [ 1 2 3 4 10 20 30 40]
二、围绕轴心
1import numpy as np
2
3arr_merged = np.append([[1, 2], [3, 4]], [[10, 20], [30, 40]], axis=0)
4print(f'Merged 2x2 Arrays along Axis-0:\n{arr_merged}')
5
6arr_merged = np.append([[1, 2], [3, 4]], [[10, 20], [30, 40]], axis=1)
7print(f'Merged 2x2 Arrays along Axis-1:\n{arr_merged}')
输出:
1Merged 2x2 Arrays along Axis-0:
2[[ 1 2]
3 [ 3 4]
4 [10 20]
5 [30 40]]
6Merged 2x2 Arrays along Axis-1:
7[[ 1 2 10 20]
8 [ 3 4 30 40]]
- 当 2x2 阵列在 x 轴上合并时,输出阵列大小为 4x2.
- 当 2x2 阵列在 y 轴上合并时,输出阵列大小为 2x4.
3、不同形状的混合物
附件() 函数将丢弃 ValueError 如果两个数组的形状不同,不包括轴。
1arr3 = np.append([[1, 2]], [[1, 2, 3], [1, 2, 3]])
2print(arr3)
3
4arr3 = np.append([[1, 2]], [[1, 2], [3, 4]], axis=0)
5print(arr3)
- 在第一个示例中,数组元素是平的,所以即使它们的尺寸完全不同 - 1x2 和 2x3,附件()工作很好 *在第二个示例中,数组的形状是1x2 和 2x2. 由于我们沿着0轴挂钩,0轴形状可能不同。
输出:
1[1 2 1 2 3 1 2 3]
2
3[[1 2]
4 [1 2]
5 [3 4]]
让我们来看看 ValueError 将被提取的另一个例子。
1>>> import numpy as np
2>>>
3>>> arr3 = np.append([[1, 2]], [[1, 2, 3]], axis=0)
4Traceback (most recent call last):
5 File "", line 1, in
6 File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/numpy/lib/function_base.py", line 4528, in append
7 return concatenate((arr, values), axis=axis)
8ValueError: all the input array dimensions except for the concatenation axis must match exactly
9>>>
数组形状为 1x2 和 2x3. 由于轴-1 形状不同,因此提到 ValueError。 ** 参考**: API Doc