gpt4 book ai didi

python - 从 NumPy 中的对象数组获取属性

转载 作者:太空狗 更新时间:2023-10-29 22:20:00 25 4
gpt4 key购买 nike

假设我有一个名为 Star 的类,它有一个属性 color。我可以使用 star.color 获取颜色。

但是如果我有一个包含这些 Star 对象的 NumPy 数组呢?获取颜色数组的首选方法是什么?

我可以用

colors = np.array([s.color for s in stars])

但这是最好的方法吗?如果我可以像其他语言一样使用 colors = star.colorcolors = star->color 等,那就太好了。在那儿在 numpy 中执行此操作的简单方法?

最佳答案

最接近您想要的是使用 recarray 而不是 Python 对象的 ndarray:

num_stars = 10
dtype = numpy.dtype([('x', float), ('y', float), ('colour', float)])
a = numpy.recarray(num_stars, dtype=dtype)
a.colour = numpy.arange(num_stars)
print a.colour

打印

[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9.]

使用 NumPy Python 对象数组通常比使用普通 list 效率低,而 recarray 以更高效的格式存储数据。

关于python - 从 NumPy 中的对象数组获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9791850/

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