【问题标题】:numpy multidimension array from pandas来自熊猫的 numpy 多维数组
【发布时间】:2018-01-22 20:14:09
【问题描述】:

我有一个Pandas dataframe,我从中选择了一些列并创建了两个长度相同的数据框:

series1 = df[['VAL1', 'VAL2', 'VAL3', 'VAL4', 'VAL5','VAL6']]

series2 = df[['OTHER_VAL1', 'OTHER_VAL2', 'OTHER_VAL3', 'OTHER_VAL4', 'OTHER_VAL5','OTHER_VAL6']]

之后,我从每个 DataFrame 创建两个 numpy 数组

series_1_np = series1.values
series_2_np = series2.values

两个数组的形状都是这样的:

(69193, 6) 

我想将我的series1 重塑为:

(69193, 6, 6) 

并希望将series2 中的每个值添加到新的扩展维度。

我问它是因为我想创建一个Conv1D keras 模型。现在我正在这样做:

我在series1 中创建了一个新维度:

series1 = np.expand_dims(series1, axis=-1)

然后我创建我的模型:

    model = Sequential()
    model.add(Conv1D(filters=2 , kernel_size=3, strides=1, input_shape=(6, 1)) )
    ...
    ...

它正在运行,这没有任何问题。但是,我的 series2 中有另一个功能集,并想将其发送到我的模型输入。

我该怎么做?抱歉,我什至无法启动它。

谢谢!

谢谢!

【问题讨论】:

  • “将 series2 中的每个值添加到新的扩展维度”是什么意思?您的意思是希望每个series1[:,:,i] 都等于series1[:,:] + series2[:, i]?
  • 您在两个数组中有2 x (69193 * 6) 项。您想要的新形状有(69196 * 6 * 6) 项。你确定那是你想要的吗?也许解释你想要做什么。看看Joining Arrays
  • 你必须想象一个有 12 列和 69193 行的数据框。我想从中创建一个 numpy 数组,因为它可能是 Conv1d Keras 模型的输入。
  • 对不起,我要更新我的问题..

标签: python pandas numpy keras


【解决方案1】:

根据您的 cmets,获得所需内容的最简单方法是

series1_new = np.zeros((df.shape[0], 6, 2))
series1_new[:,:,0] = series_1_np
series1_new[:,:,1] = series_2_np

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-09-11
  • 2019-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多