我正在构建一个python应用程序,我在其中检索一个对象列表,我想绘制它们(用于绘制我使用matplotlib
)。列表中的每个对象都包含两个属性。
例如,假设我有列表rawdata,存储在其中的对象具有属性timestamp和power
rawdata[0].timestamp == 1
rawdata[1].timestamp == 2
rawdata[2].timestamp == 3
等
rawdata[0].power == 1232.547
rawdata[1].power == 2525.423
rawdata[2].power == 1125.253
等
我希望能够绘制这两个属性所代表的两个维度,并且我希望以时间和空间有效的方式进行。这意味着我想避免迭代列表并顺序构造类似numpy数组的东西。
有没有办法应用列表的动态转换?或以某种方式绘制它原样?由于所有信息都已包含在列表中,我认为应该有办法。
我找到的最接近的答案是this,但它包括对列表的连续迭代。
更新
正如Antonio Ragagnin所指出的,我可以使用map
内置函数来有效地构造一个numpy数组。但这也意味着我将不得不创建第二个数据结构。我可以使用map
将列表动态转换为二维numpy数组吗?
答案 0 :(得分:3)
来自matplotlib tutorial(强调我的):
如果matplotlib仅限于使用列表,那么数字处理将毫无用处。通常,您将使用numpy数组。 实际上,所有序列都在内部转换为numpy数组。
所以你没有把它转换成一个numpy数组,如果不这样做就会失去它matplotlib会。