gpt4 book ai didi

python - 将条件从字符串传递到 numpy where

转载 作者:行者123 更新时间:2023-12-01 09:34:01 26 4
gpt4 key购买 nike

我有一系列条件,这些条件可能会根据选择的名称而有所不同。我想知道是否有一种方法可以从一组字符串构造 python numpy where 的条件。下面有一个示例程序。我希望能够在 a[ind] 的两个实例中获得相同的结果。

import numpy as np

a = np.arange(10)
ind = np.where((a>6) | (a<3))
print a[ind]

select = 'c'
if (select == 'c'):
sel0 = '(a>6)'

sel = sel0 + ' | (a<3)'
print sel

ind = np.where(sel)
print a[ind]

这是我目前得到的输出:

[0 1 2 7 8 9]
(a>6) | (a<3)
[0]

最佳答案

您可以评估文字sel:

ind = np.where(eval(sel))
print(a[ind])
# [0 1 2 7 8 9]
<小时/>

但是为什么还要使用字符串文字呢?

select = 'c'
if select == 'c':
sel0 = a>6

sel = sel0 | (a<3)
print(sel)

ind = np.where(sel)
print(a[ind])
# [0 1 2 7 8 9]

只要遵循相同的操作顺序,条件的计算位置实际上并不重要。无论您在何处评估条件,sel 将始终等于:

[ True  True  True False False False False  True  True  True]

使用该 bool 数组,where 将始终产生相同的输出。

关于python - 将条件从字符串传递到 numpy where,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49693682/

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