gpt4 book ai didi

python - 如何在带有类实例的数组中使用 np.where() ?

转载 作者:行者123 更新时间:2023-11-30 22:55:58 25 4
gpt4 key购买 nike

我有以下类(class):

class IdFuns(object):
def __init__(self,i,p,v,u):
self.i = i
self.p = p
self.v = v
self.u = u

当我放入循环中时,我得到以下包含该类实例的数组:

   array([
<__main__.IdFuns object at 0x7fc8362e8250>,
<__main__.IdFuns object at 0x7fc8362e8290>,
<__main__.IdFuns object at 0x7fc8362e82d0>,
<__main__.IdFuns object at 0x7fc8362e8310>,
<__main__.IdFuns object at 0x7fc8362e8350>,
<__main__.IdFuns object at 0x7fc8362e8390>,
<__main__.IdFuns object at 0x7fc8362e83d0>,
<__main__.IdFuns object at 0x7fc8362e8410>,
<__main__.IdFuns object at 0x7fc8362e8450>,
<__main__.IdFuns object at 0x7fc8362e8490>,
<__main__.IdFuns object at 0x7fc8362e84d0>,
<__main__.IdFuns object at 0x7fc8362e8510>,
<__main__.IdFuns object at 0x7fc8362e8550>], dtype=object)

例如,我想知道如何使用 np.where() 来搜索是否有带有 .i = 1 的实例。

最佳答案

.i 是对象数组中各个项目的属性,而不是数组本身的属性。因此,您需要在 Python 中循环这些项目,例如使用列表理解:

bool_idx = [item.i == 1 for item in object_array]

然后可以将其作为第一个参数传递给 np.where:

locs = np.where(bool_idx)
<小时/>

一般来说,我建议您避免使用np.object数组。由于它们不支持矢量化操作,因此与标准 Python list 相比,它们实际上并没有提供任何显着的性能改进。在我看来,使用 structured numpy array 可能会更好。或pandas.DataFrame .

关于python - 如何在带有类实例的数组中使用 np.where() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37195111/

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