在 Python 中使用 numpy.append()

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>>>

Numpy Append Valueerror

数组形状为 1x2 和 2x3. 由于轴-1 形状不同,因此提到 ValueError。 ** 参考**: API Doc

Published At
Categories with 技术
Tagged with
comments powered by Disqus