gpt4 book ai didi

python - 如何在 Python 中实现 matlabs `` ismember( )`` 命令?

转载 作者:太空宇宙 更新时间:2023-11-03 12:22:40 24 4
gpt4 key购买 nike

这是我的问题:我想创建一个 bool 矩阵 B,它包含 True 矩阵 A 的值包含在向量 v 中的任何地方。一个不方便的解决方案是:

import numpy as np
>>> A = np.array([[0,1,2], [1,2,3], [2,3,4]])
array([[0, 1, 2],
[1, 2, 3],
[2, 3, 4]])
>>> v = [1,2]
>>> B = (A==v[0]) + (A==v[1]) # matlab: ``B = ismember(A,v)``
array([[False, True, True],
[ True, True, False],
[ True, False, False]], dtype=bool)

如果 A 和 v 有更多的值,是否有更方便的解决方案?

干杯!

最佳答案

我不太了解 numpy,这是一个原始的 python:

>>> A = [[0,1,2], [1,2,3], [2,3,4]]
>>> v = [1,2]
>>> B = [map(lambda val: val in v, a) for a in A]
>>>
>>> B
[[False, True, True], [True, True, False], [True, False, False]]

编辑:正如 Brooks Moses 指出的那样,一些简单的时间安排似乎表明,这个可能更好:

>>> B = [ [val in v for val in a] for a in A]

关于python - 如何在 Python 中实现 matlabs `` ismember( )`` 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1273041/

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