Numpy 删除所有以零开头的行
Numpy delete all rows that start with zero
我有 2D Numpy 数组,我想删除所有以特定值开头的行,比如 (0),然后将所有以其他值开头的行,比如 (10) 保留到新数组中
a1 = np.array([[ 0, 1, 2, 3, 4],
[ 5, 6, 0, 8, 0],
[10, 11, 12, 13, 14],
[ 0, 16, 17, 18, 19],
[20, 21, 22, 0, 24]])
第一步之后
a2 = ([[ 5, 6, 0, 8, 0],
[10, 11, 12, 13, 14],
[20, 21, 22, 0, 24]])
最后一步
a3 = ([[10, 11, 12, 13, 14]])
您可以使用以下掩码实现此目的:
mask = (a1[:, 0] != 0)
a2 = a1[mask, :]
mask2 = (a2[:, 0] == 10)
a3 = a2[mask2, :]
您可以使用 np.logical_not 方法为要删除的行创建条件。
'''
a2 = a1[np.logical_not(a1[:, 0] == 0)]
a3 = a2[np.logical_not(a2[:, 0] != 10)]
'''
我有 2D Numpy 数组,我想删除所有以特定值开头的行,比如 (0),然后将所有以其他值开头的行,比如 (10) 保留到新数组中
a1 = np.array([[ 0, 1, 2, 3, 4],
[ 5, 6, 0, 8, 0],
[10, 11, 12, 13, 14],
[ 0, 16, 17, 18, 19],
[20, 21, 22, 0, 24]])
第一步之后
a2 = ([[ 5, 6, 0, 8, 0],
[10, 11, 12, 13, 14],
[20, 21, 22, 0, 24]])
最后一步
a3 = ([[10, 11, 12, 13, 14]])
您可以使用以下掩码实现此目的:
mask = (a1[:, 0] != 0)
a2 = a1[mask, :]
mask2 = (a2[:, 0] == 10)
a3 = a2[mask2, :]
您可以使用 np.logical_not 方法为要删除的行创建条件。
'''
a2 = a1[np.logical_not(a1[:, 0] == 0)]
a3 = a2[np.logical_not(a2[:, 0] != 10)]
'''