猿问

追加到一个numpy数组

我有以下代码:


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]


精慕HU
浏览 205回答 1
1回答

青春有我

1)阅读np.append文档。np.append(self.tempresult,&nbsp;result)是错的。&nbsp;np.append返回一个新数组;它的作用不像列表追加那样。2)np.append是的笨拙界面np.concatenate。如果你听不懂concatenate,就会被搞砸了append。3)因为每次都会创建一个新数组,所以重复的连接速度很慢。收集数组列表并在最后进行一个连接要快得多4)使用化合物时dtype,所有输入concatenate必须具有相同的dtype。
随时随地看视频慕课网APP

相关分类

Python
我要回答