小编Dav*_*vid的帖子

python中的模块化算法迭代pandas数据帧

好的,我有一个很大的数据框,例如:

      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中实现模块化算法来迭代数据帧列.

非常感谢你.

python numpy dataframe pandas

5
推荐指数
1
解决办法
839
查看次数

在 Keras 中使用 `predict` 按照给定的顺序预测一维数组

我正在 Keras 中进行回归,使用具有 1 个输入、10 个隐藏单元和 1 个输出的神经网络。我像往常一样适合模型:

model.fit(x_train, y_train, nb_epoch=15, batch_size=32)
Run Code Online (Sandbox Code Playgroud)

现在我想预测一个xtest(asx_trainy_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 进行一些比较并进行一些统计。所以,顺序是必不可少的。我该怎么做?

先感谢您。

python machine-learning neural-network deep-learning keras

4
推荐指数
1
解决办法
1060
查看次数

模型在喀拉拉邦预测后如何恢复原始值?

这是一个更具概念性的问题,但是我不得不承认我已经处理了一段时间。

假设您想使用例如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,乙状结肠),训练会改善。

谢谢。

python neural-network keras

4
推荐指数
1
解决办法
2772
查看次数

如何将垂直 numpy 数组(1D)恢复为其通常的水平默认形式?

好的,已经多次询问如何将一维 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),您如何将其转换为水平?

python arrays numpy

4
推荐指数
1
解决办法
3140
查看次数

用于回归层的 RNN

我想训练一个 RNN 来解决一个简单的回归问题。我有一个X_train形状数组(35584,),表示数年来每小时的测量值。我也有Y_train形状(35584,)作为预期值的通讯员。一小时的值h受前 6 小时值的影响,所以我想使用 RNN。

在 Keras 中,我理解我的情况:timesteps = 6nb_samples = 35584. 就我而言,nb_features = 1.

我如何在 Keras 中编程?我应该使用Embedding图层吗?以及怎么做?

python neural-network keras recurrent-neural-network

3
推荐指数
1
解决办法
5699
查看次数

改变Python循环中的步骤

在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

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

用不同版本的熊猫阅读泡菜

我无法读取使用不同版本的 Python pandas 保存的 pickle 文件。我知道以前曾在这里问过这个问题,但是提供的解决方案,使用pd.read_pickle("my_file.pkl")也不起作用。我认为(但我不确定)这些泡菜文件是用比我现在工作的机器更新的熊猫版本创建的。

不幸的是,我不是管理员,我无法更改 pandas 的版本。如何读取我的文件?它们是不可恢复的吗?

python pandas

2
推荐指数
3
解决办法
2196
查看次数