好的,我有一个很大的数据框,例如:
hour value
0 0 1
1 6 2
2 12 3
3 18 4
4 0 5
5 6 6
6 12 7
7 18 8
8 6 9
9 12 10
10 18 11
11 12 12
12 18 13
13 0 14
Run Code Online (Sandbox Code Playgroud)
让我们不要迷失在这里.该列hour表示一天中的小时数,从6到6小时.列values很好,确切地说,这里的值是一个例子,而不是实际值.
如果仔细查看该hour列,可以看到缺少数小时.例如,第7行和第8行之间存在间隙(缺少小时0的值).还存在更大的间隙,例如在行10和11之间(00和06小时).
我需要什么?我想检查一个小时(当然)缺少一个值的时间,并完成数据框插入一行,其中包含相应的小时和一个np.nan值.
我有什么想法?我认为这可以使用模运算轻松解决,在这种情况下使用mod 24,例如when 18 + 6 = 24 = 0 mod 24.因此,将计数器初始化为零并添加6 ,并注意计数器在模块算术模型24中定义,您可以验证每个hour是否是相应的小时,如果不是,则插入一个具有相应小时和np.nan值的新行.
我不知道如何在python中实现模块化算法来迭代数据帧列.
非常感谢你.
我正在 Keras 中进行回归,使用具有 1 个输入、10 个隐藏单元和 1 个输出的神经网络。我像往常一样适合模型:
model.fit(x_train, y_train, nb_epoch=15, batch_size=32)
Run Code Online (Sandbox Code Playgroud)
现在我想预测一个xtest(asx_train和y_train) 一个非常大的一维 numpy 数组。在 Keras 网站的文档中,您可以找到:
predict(self, x, batch_size=32, verbose=0)
Run Code Online (Sandbox Code Playgroud)
所以我知道你必须这样做:
model.predict(xtest, batch_size=32)
Run Code Online (Sandbox Code Playgroud)
我对batch_size指令感到困惑。这是否意味着predict以随机方式获取 xtest 的值?
因为我需要的是以与 xtest 给出的完全相同的顺序predict生成输出。我的意思是,首先预测 xtest[0] 的输出,然后预测 xtest[1] 的输出,然后预测 xtest[2] 的输出......等等。使用该数组预测,我想与我拥有的实际 ytest 进行一些比较并进行一些统计。所以,顺序是必不可少的。我该怎么做?
先感谢您。
这是一个更具概念性的问题,但是我不得不承认我已经处理了一段时间。
假设您想使用例如keras训练神经网络(NN)。建议您在训练之前对数据进行标准化或标准化,例如,进行标准化:
x_new = (x_old - mean)/standarddev
Run Code Online (Sandbox Code Playgroud)
然后,您进行培训(model.fit在keras中)并最小化损失函数,所有这些都非常好。
编辑:就我而言,我有一组介于200和400之间的值。这是一个具有1个输入,1个输出的NN。正如我所说的那样,对输入值和期望值进行标准化,因此NN以标准化的方式学习权重和偏差。
现在,假设我有一个全新的值在200到400之间的数据集,并且我想使用先前训练的NN来预测输出。您可以model.predict(x)在keras 中使用x我收到的,标准化(或规范化)的全新值集,因为您的NN是以这种方式训练的。但是,之后得到的predict是标准化的值数组,但我想将它们映射到通常的200到400范围。而且我不知道该怎么做。
我知道您可以在不进行标准化或标准化的情况下进行训练,但我读过,如果您进行标准化(或标准化),其值应在单位(神经元)的输出范围内(例如,对于0到1,乙状结肠),训练会改善。
谢谢。
好的,已经多次询问如何将一维 numpy 数组转换为垂直数组。最常用的选项是,如果
In [2]: a = np.array([1, 2, 3, 4])
In [3]: a
Out[3]: array([1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)
我们通常这样做:
In [5]: a = a[ : , np.newaxis]
In [6]: a
Out[6]:
array([[1],
[2],
[3],
[4]])
Run Code Online (Sandbox Code Playgroud)
因为我们知道那a.T是行不通的(像我这样的数学背景比 CS 多的人会觉得有点令人震惊……)。
我的问题是,如果您收到一个已经是垂直的数组(1D),您如何将其转换为水平?
我想训练一个 RNN 来解决一个简单的回归问题。我有一个X_train形状数组(35584,),表示数年来每小时的测量值。我也有Y_train形状(35584,)作为预期值的通讯员。一小时的值h受前 6 小时值的影响,所以我想使用 RNN。
在 Keras 中,我理解我的情况:timesteps = 6和nb_samples = 35584. 就我而言,nb_features = 1.
我如何在 Keras 中编程?我应该使用Embedding图层吗?以及怎么做?
在Python 2.7中,我想根据for循环中满足的细节条件修改循环的步骤.像这样的东西:
step = 1
for i in range(1, 100, step):
if ...... :
step = 1
#do stuff
else:
step = 2
#do other stuff
Run Code Online (Sandbox Code Playgroud)
但似乎这不可能做到,step总是1.
谢谢.
我无法读取使用不同版本的 Python pandas 保存的 pickle 文件。我知道以前曾在这里问过这个问题,但是提供的解决方案,使用pd.read_pickle("my_file.pkl")也不起作用。我认为(但我不确定)这些泡菜文件是用比我现在工作的机器更新的熊猫版本创建的。
不幸的是,我不是管理员,我无法更改 pandas 的版本。如何读取我的文件?它们是不可恢复的吗?