【发布时间】:2016-06-08 23:01:33
【问题描述】:
有没有办法从 numpy 数组中提取元素属性?例如,假设我有:
import numpy as np
class foo():
def __init__(self, value):
self.bar = value
obj_array = np.empty((2, 2), dtype='object')
for i in range(obj_array.shape[0]):
for j in range(obj_array.shape[1]):
obj_array[i, j] = foo(i+j)
bar_array_hard_way = np.empty_like(obj_array)
for i in range(obj_array.shape[0]):
for j in range(obj_array.shape[1]):
bar_array_hard_way[i, j] = obj_array[i, j].bar
在这里,我有一个对象数组。每个对象都有一些属性。我希望有一种巧妙的内置方法可以将这些属性提取为新的 numpy 数组。显然这是一个非常简单的例子,但是更大的数组元素方式的复制非常烦人。
【问题讨论】:
-
这几乎肯定不是工作代码,因为
obj_array.size[0]无效......你的意思是obj_array.shape -
或许使用
recarray?