如何访问 numpy 数组结构中的对象属性

rm.*_*rm. 6 python numpy

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

例如,给定一个日期类型对象的 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)
Run Code Online (Sandbox Code Playgroud)

Art*_*nka 1

认为你可以通过以下方式做到这一点:

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])
Run Code Online (Sandbox Code Playgroud)

根据评论编辑:

B = array([x.replace(year=x.year+10) for x in B])
Run Code Online (Sandbox Code Playgroud)

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