gpt4 book ai didi

Python-如果行包含则删除矩阵/数组中的行

转载 作者:行者123 更新时间:2023-12-01 01:22:19 25 4
gpt4 key购买 nike

如果你有一个 x*n 矩阵,如何检查包含特定数字的行,如果是,如何删除该行?

最佳答案

如果您使用pandas,您可以创建一个可用于索引数据帧的掩码,并使用~否定该掩码:

df = pd.DataFrame(np.arange(12).reshape(3, 4))
# 0 1 2 3
# 0 0 1 2 3
# 1 4 5 6 7
# 2 8 9 10 11

value = 2

如果您想检查该值是否包含在特定列中:

df[~(df[2] == value)]
# 0 1 2 3
# 1 4 5 6 7
# 2 8 9 10 11

或者如果它可以包含在任何列中:

df[~(df == value).any(axis=1)]
# 0 1 2 3
# 1 4 5 6 7
# 2 8 9 10 11

之后只需将其重新分配给df即可。

<小时/>

如果您仅使用 numpy,这也适用:

x = np.arange(12).reshape(3, 4)
# array([[ 0, 1, 2, 3],
# [ 4, 5, 6, 7],
# [ 8, 9, 10, 11]])

x[~(x == value).any(axis=1)]
# array([[ 4, 5, 6, 7],
# [ 8, 9, 10, 11]])
<小时/>

最后,如果您使用普通 Python 并且有一个列表列表,请在列表理解中使用内置 any:

y = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]

[row for row in y if not any(x == value for x in row)]
# [[4, 5, 6, 7], [8, 9, 10, 11]]

关于Python-如果行包含则删除矩阵/数组中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53707901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com