相关疑难解决方法(0)

在pandas数据框中选择多个列

我有不同列中的数据,但我不知道如何提取它以将其保存在另一个变量中.

index  a   b   c
1      2   3   4
2      3   4   5
Run Code Online (Sandbox Code Playgroud)

我该如何选择'a','b'并保存到DF1?

我试过了

df1 = df['a':'b']
df1 = df.ix[:, 'a':'b']
Run Code Online (Sandbox Code Playgroud)

似乎没有工作.

python select dataframe pandas

938
推荐指数
19
解决办法
196万
查看次数

将pandas数据帧转换为NumPy数组

我有兴趣知道如何将pandas数据帧转换为NumPy数组.

数据帧:

import numpy as np
import pandas as pd

index = [1, 2, 3, 4, 5, 6, 7]
a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1]
b = [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan]
c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan]
df = pd.DataFrame({'A': a, 'B': b, 'C': c}, index=index)
df = df.rename_axis('ID')
Run Code Online (Sandbox Code Playgroud)

label   A    B    C
ID                                 
1   NaN  0.2  NaN
2   NaN  NaN  0.5
3   NaN  0.2  0.5
4   0.1  0.2  NaN …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy dataframe pandas

400
推荐指数
14
解决办法
81万
查看次数

检查模型输入时出错:预期lstm_1_input具有3个维度,但是具有形状的数组(339732,29)

我的输入只是一个包含339732行和两列的csv文件:

  • 第一个是29个特征值,即X.
  • 第二个是二进制标签值,即Y.

我正在尝试在堆叠的LSTM模型上训练我的数据:

data_dim = 29
timesteps = 8
num_classes = 2

model = Sequential()
model.add(LSTM(30, return_sequences=True,
               input_shape=(timesteps, data_dim)))  # returns a sequence of vectors of dimension 30
model.add(LSTM(30, return_sequences=True))  # returns a sequence of vectors of dimension 30
model.add(LSTM(30))  # return a single vector of dimension 30
model.add(Dense(1, activation='softmax'))

model.compile(loss='binary_crossentropy',
              optimizer='rmsprop',
              metrics=['accuracy'])

model.summary()
model.fit(X_train, y_train, batch_size = 400, epochs = 20, verbose = 1)
Run Code Online (Sandbox Code Playgroud)

这会引发错误:

回溯(最近一次调用最后一次):文件"first_approach.py​​",第80行,在model.fit中(X_train,y_train,batch_size = 400,epochs = 20,verbose = 1)

ValueError:检查模型输入时出错:预期lstm_1_input有3个维度,但是有形状的数组(339732,29)

我尝试使用重塑我的输入,X_train.reshape((1,339732, 29))但它没有显示错误:

ValueError:检查模型输入时出错:期望lstm_1_input具有形状(无,8,29)但是具有形状的数组(1,339732,29) …

python lstm keras recurrent-neural-network valueerror

22
推荐指数
3
解决办法
4万
查看次数

对RNN中批量大小和时间步骤的疑虑

在Tensorflow的RNN教程中:https://www.tensorflow.org/tutorials/recurrent .它提到了两个参数:批量大小和时间步长.我对这些概念感到困惑.在我看来,RNN引入批次是因为列车序列可能非常长,使得反向传播不能计算那么长(爆炸/消失的梯度).因此,我们将长列车序列划分为较短的序列,每个序列都是一个小批量,其大小称为"批量大小".我在这儿吗?

关于时间步长,RNN仅由细胞(LSTM或GRU细胞或其他细胞)组成,并且该细胞是连续的.我们可以通过展开来理解顺序概念.但是展开顺序单元是一个概念,而不是真实的,这意味着我们不会以展开的方式实现它.假设列车序列是文本语料库.然后我们每次向RNN小区提供一个单词,然后更新权重.那么为什么我们在这里有时间步骤呢?结合我对上述"批量大小"的理解,我更加困惑.我们是用单词还是多个单词(批量大小)来提供单元格?

recurrent-neural-network

10
推荐指数
2
解决办法
1万
查看次数

在Keras中,如何获取LSTM层的3D输入和3D输出

在我原来的环境中

X1 = (1200,40,1)
y1 = (1200,10)
Run Code Online (Sandbox Code Playgroud)

然后,我可以完美地使用我的代码:

model = Sequential()
model.add(LSTM(12, input_shape=(40, 1), return_sequences=True))
model.add(LSTM(12, return_sequences=True))
model.add(LSTM(6, return_sequences=False))
model.add((Dense(10)))
Run Code Online (Sandbox Code Playgroud)

现在,我进一步获得了另一个与X1和相同大小的时间序列数据y1。即

X2 = (1200,40,1)
y2 = (1200,10)
Run Code Online (Sandbox Code Playgroud)

现在,我叠X1X2并且y1y2作为3D阵列:

X_stack = (1200,40,2)
y_stack = (1200,10,2)
Run Code Online (Sandbox Code Playgroud)

然后,我尝试修改我的keras代码,例如:

model = Sequential()
model.add(LSTM(12, input_shape=(40, 2), return_sequences=True))
model.add(LSTM(12, return_sequences=True))
model.add(LSTM(6, return_sequences=False))
model.add((Dense((10,2))))
Run Code Online (Sandbox Code Playgroud)

我希望我的代码直接与3D数组一起使用X_stacky_stack而不希望将其重塑为2D数组。您能帮我修改设置吗?谢谢。

python neural-network lstm keras

9
推荐指数
1
解决办法
487
查看次数