NumPy 函数

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