附加到numpy数组

2024-06-28 19:15:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

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]

Tags: sampleselfdataiftimenpzerosresult
1条回答
网友
1楼 · 发布于 2024-06-28 19:15:51

1)阅读np.append文档。你知道吗

np.append(self.tempresult, result)

这是错误的。np.append返回一个新数组;它不像list append那样执行就地操作。你知道吗

2)np.appendnp.concatenate的笨拙接口。如果你不懂concatenate,你会被append搞砸的。你知道吗

3)因为它每次生成一个新的数组,所以重复连接的速度很慢。收集数组列表并在最后进行一次连接要快得多

4)当使用化合物dtype时,concatenate的所有输入必须具有相同的dtype。你知道吗

相关问题 更多 >