NumPy delete() 函数返回一个新数组,其中沿轴删除了子数组。对于一维数组,这将返回 arr[obj] 未返回的条目。
语法
numpy.delete(arr, obj, axis=None)
参数
arr | 必填。 指定输入数组(array_like)。 |
obj | 必填。 指定要沿指定轴删除的子数组的索引。它可以是切片、整数或整数数组。 |
axis | 可选。 指定删除 obj 定义的子数组的轴。如果 axis 为 None,则将 obj 应用于展平数组。 |
返回值
返回 arr 的副本,其中删除了 obj 指定的元素。
示例:
在下面的示例中,delete()函数用于从数组中删除给定的对象。
import numpy as np
Arr = np.array([[10, 20, 30],
[40, 50, 60],
[70, 80, 90]])
#删除第三个元素(轴=无)
Arr1 = np.delete(Arr, 2)
#删除第二行
Arr2 = np.delete(Arr, 1, 0)
#删除第二列
Arr3 = np.delete(Arr, 1, 1)
#显示结果
print("Arr is:")
print(Arr)
print("\nArr1 is (delete with axis=None):")
print(Arr1)
print("\nArr2 is (delete with axis=0):")
print(Arr2)
print("\nArr3 is (delete with axis=1):")
print(Arr3)
上述代码的输出将是:
Arr is:
[[10 20 30]
[40 50 60]
[70 80 90]]
Arr1 is (delete with axis=None):
[10 20 40 50 60 70 80 90]
Arr2 is (delete with axis=0):
[[10 20 30]
[70 80 90]]
Arr3 is (delete with axis=1):
[[10 30]
[40 60]
[70 90]]
示例:
在下面的示例中,delete()函数用于从数组中删除多个行/列。
import numpy as np
Arr = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
#删除第2行和第3行
Arr1 = np.delete(Arr, [1, 2], axis=0)
#删除第二列和第三列
Arr2 = np.delete(Arr, [1, 2], axis=1)
#显示结果
print("Arr is:")
print(Arr)
print("\nArr1 is (delete with axis=0):")
print(Arr1)
print("\nArr2 is (delete with axis=1):")
print(Arr2)
上述代码的输出将是:
Arr is:
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]
Arr1 is (delete with axis=0):
[[ 1 2 3 4]
[13 14 15 16]]
Arr2 is (delete with axis=1):
[[ 1 4]
[ 5 8]
[ 9 12]
[13 16]]
示例:
类似slice() 函数可用于指定要从数组中删除的行/列。
import numpy as np
Arr = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
#删除备用行
Arr1 = np.delete(Arr, slice(None, None, 2), axis=0)
#删除备用列
Arr2 = np.delete(Arr, slice(None, None, 2), axis=1)
#显示结果
print("Arr is:")
print(Arr)
print("\nArr1 is (delete with axis=0):")
print(Arr1)
print("\nArr2 is (delete with axis=1):")
print(Arr2)
上述代码的输出将是:
Arr is:
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]
Arr1 is (delete with axis=0):
[[ 5 6 7 8]
[13 14 15 16]]
Arr2 is (delete with axis=1):
[[ 2 4]
[ 6 8]
[10 12]
[14 16]]