我有以下代码:
result = np.zeros((samples,), dtype=[('time', '<f8'), ('data', '<f8', (datalen,))])
我想创建变量tempresult
来累积数据result
,一旦我累积了25000个样本,我想对它执行一些操作。你知道吗
所以我想做一些类似的事情:
result = np.zeros((samples,), dtype=[('time', '<f8'), ('data', '<f8', (datalen,))])
tempresult.append(result)
if ( len(tempresult[0] > 25000 )):
# do something
我尝试了答案代码,但得到了异常TypeError:无效的类型提升
result = np.zeros((samples,), dtype=[('time', '<f8'), ('data', '<f8', (datalen,))])
if self.storeTimeStamp:
self.storeTimeStamp = False
self.timestamp = message.timestamp64
self.oldsamples = 0
for sample in range(0, samples):
sstep = self.timestamp + (self.oldsamples + sample) * step
result[sample] = (sstep, data[sample])
self.oldsamples = self.oldsamples + samples
# append
np.append(self.tempresult, result)
if len(self.tempresult) < 25000:
return
return [self.tempresult]
1)阅读
np.append
文档。你知道吗这是错误的。
np.append
返回一个新数组;它不像list append那样执行就地操作。你知道吗2)
np.append
是np.concatenate
的笨拙接口。如果你不懂concatenate
,你会被append
搞砸的。你知道吗3)因为它每次生成一个新的数组,所以重复连接的速度很慢。收集数组列表并在最后进行一次连接要快得多
4)当使用化合物
dtype
时,concatenate
的所有输入必须具有相同的dtype
。你知道吗相关问题 更多 >
编程相关推荐