如何在numpy数组结构中访问Object属性

给定相同(用户指定)对象的numpy数组结构,有没有办法一次引用所有这些对象?

例如.给定一个类型为date的对象的numpy数组结构,有没有办法在不使用for循环或数组中每个对象的1到year属性的情况下取多年的平均值?

示例代码如下.

from numpy import *
from datetime import *

#this works
A = array([2012, 2011, 2009])
print average(A)

date1 = date(2012,06,30)
date2 = date(2011,06,30)
date3 = date(2010,06,30)
B = array([date1, date2, date3])
print B[0].year
print B[1].year
print B[2].year

#this doesn't
print average(B.year)

最佳答案 认为您可以通过以下方式执行此操作:

from numpy import array, average
from datetime import date

date1 = date(2012,06,30)
date2 = date(2011,06,30)
date3 = date(2010,06,30)
B = array([date1, date2, date3])

avYear = average([x.year for x in B])

根据评论编辑:

B = array([x.replace(year=x.year+10) for x in B])

请注意,使用from module import *并不是很好 – 最好只导入您真正需要的类和函数.

点赞