为了账号安全,请及时绑定邮箱和手机立即绑定

追加到一个numpy数组

追加到一个numpy数组

精慕HU 2021-05-13 18:14:48
我有以下代码: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 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

1)阅读np.append文档。

np.append(self.tempresult, result)

是错的。 np.append返回一个新数组;它的作用不像列表追加那样。

2)np.append是的笨拙界面np.concatenate。如果你听不懂concatenate,就会被搞砸了append

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

4)使用化合物时dtype,所有输入concatenate必须具有相同的dtype


查看完整回答
反对 回复 2021-05-18
  • 1 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号