[英]What dimensions should my Numpy Array be ? Obspy Traces
我目前有 175x 事件的地震數據,每個事件有 3 條軌跡(軌跡是 numpy arrays 地震數據)。 對於這 175 個樣本中的每一個,我都有關於地震數據是否為地震的分類標簽。 我希望將我的數據格式化為 numpy arrays 以進行建模。 我嘗試將 dataframe 放入 numpy arrays 中,每列都是不同的軌跡。 所以列將是“跟蹤一”“跟蹤二”“跟蹤三”。 這沒有用。 我嘗試了許多不同的方法來安排數據以與 keras 一起使用。 我現在正在尋找為 go 的數據創建一個 numpy 矩陣,然后用於建模。 我曾認為形狀可能是(175,3,7501)
為(#number of events, #number of traces,#number of samples in trace)
,但是我然后迭代並嘗試將三個跟蹤添加到 numpy矩陣並失敗了。 我習慣於使用數據幀而不是 numpy 來輸入 Keras。
newrow = np.array([[trace_copy_1],[trace_copy_2],[trace_copy_3]])
data = numpy.vstack([data, newrow])
data
形狀為(175,3,7510)
。 newrow
形狀是(3,1,7510)
並且不允許我將newrow
添加到data
。
我接收數據的形式是 obspy 流,每個 stream 都有 3 個跟蹤對象。 With each trace object, it holds the trace data in numpy arrays and so I'm having to access and append those to a dataframe for modelling as obviously I can't feed a stream or trace object to keras model.
如果我正確理解您的數據,您可以嘗試以下方法之一:
data
形狀是(175, 3, 7510)
定義newrow
如下newrow = np.array([trace_copy_1,trace_copy_2,trace_copy_3])
與trace_copy_x
是一個 numpy 數組與形狀7510
。numpy.reshape(new_row, (3, 7510))
或new_row.reshape((3, 7510))
pandas.DataFrame(data.reshape((175, 3*7510)))
除此之外,我建議使用numpy.concatenate
而不是numpy.vstack
(更通用)。
我希望它會起作用。
干杯
感謝您的回答。 我解決這個問題的方法是創建了所需的適合形狀的 NumPy 數組。 (索引或事件數,跟蹤數(或數組數),然后是樣本量(或每個數組中的值的量)
然后我創建了一個新行。 然后我重新塑造並添加。 在此之后,我在開始添加新數據之前拆分數據以刪除原始數據。
data = np.zeros(shape=(175,3,7501))
newrow = [[trace_copy_1],[trace_copy_2],[trace_copy_3]]
newrow = np.array([[trace_copy_1],[trace_copy_2],[trace_copy_3]])
newrow = newrow.reshape((1,3,7501))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.