【发布时间】:2018-11-16 00:46:53
【问题描述】:
我想创建一个结构数组的数组:
[line_number,count,temperature,humidity,sensor1_on,sensor2_on]
其中前两个需要是uint32,而温度和湿度可以是uint8,sensor_ons 可以是bool 类型。
我稍后需要根据line_number的组合对二维数组进行排序,然后计数。我还需要对所有温度和湿度数据列表(分别)执行平均值和其他统计计算。
我找到了便于数据存储和检索的结构化数组:
np_data=np.zeros([num_lines],
dtype='uint32,'#Line No
'uint32,'# Count
'uint8,' #TEMP
'uint8,' #HUMID
'bool,' #S1 On
'bool'#S2 On
)
为了这个 vs
np_data=np.zeros([num_lines,5],dtype='uint32')
# I would pack my bools into the last uint32 and then unpack later
# but it seems like a waste of space
创建结构化数组与使用所有相同数据类型的数组相比,我是否会失去任何东西(numpy 处理能力、矢量化处理、排序速度等)?还有其他推荐的解决方案吗?
【问题讨论】:
-
我认为您只需要对真实数据进行一些计时。我们可以根据经验做出猜测,但它们只是——猜测。