gpt4 book ai didi

python - 剪切一些值为 255 的行和列

转载 作者:太空宇宙 更新时间:2023-11-03 11:23:59 25 4
gpt4 key购买 nike

我正在尝试删除值为 255 的灰度 numpy 数组中的所有行和列。
我的数组可能是:

arr = [[255,255,255,255],
[255,0,0,255],
[255,255,255,255]]

结果应该是:

arr = [0,0]

我可以只对数组进行交互,但应该有一个 pythonic 方法来解决这个问题。
对于我试过的行:

arr = arr[~(arr==255).all(1)]

这确实很好用,但我无法为列找到同等的解决方案。

最佳答案

给定行和列的 bool 数组:

In [26]: rows
Out[26]: array([False, True, False], dtype=bool)

In [27]: cols
Out[27]: array([False, True, True, False], dtype=bool)

np.ix_创建可用于索引 arr 的序号索引器:

In [32]: np.ix_(rows, cols)
Out[32]: (array([[1]]), array([[1, 2]]))

In [33]: arr[np.ix_(rows, cols)]
Out[33]: array([[0, 0]])

因此你可以使用

import numpy as np
arr = np.array([[255,255,255,255],
[255,0,0,255],
[255,255,255,255]])
mask = (arr != 255)
rows = mask.all(axis=1)
cols = mask.all(axis=0)
print(arr[np.ix_(rows, cols)])

生成二维数组

[[0 0]]

关于python - 剪切一些值为 255 的行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37391906/

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