我有以下代碼: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
。
添加回答
舉報
0/150
提交
取消