小编Rad*_*duS的帖子

NumPy版本的"指数加权移动平均线",相当于pandas.ewm().mean()

如何获得NumPy中的指数加权移动平均值,就像下面的熊猫一样

import pandas as pd
import pandas_datareader as pdr
from datetime import datetime

# Declare variables
ibm = pdr.get_data_yahoo(symbols='IBM', start=datetime(2000, 1, 1), end=datetime(2012, 1, 1)).reset_index(drop=True)['Adj Close']
windowSize = 20

# Get PANDAS exponential weighted moving average
ewm_pd = pd.DataFrame(ibm).ewm(span=windowSize, min_periods=windowSize).mean().as_matrix()

print(ewm_pd)
Run Code Online (Sandbox Code Playgroud)

我用NumPy尝试了以下内容

import numpy as np
import pandas_datareader as pdr
from datetime import datetime

# From this post: http://stackoverflow.com/a/40085052/3293881 by @Divakar
def strided_app(a, L, S): # Window len = L, Stride len/stepsize = S
    nrows = ((a.size - …
Run Code Online (Sandbox Code Playgroud)

python performance numpy vectorization pandas

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

Magento:获取自定义属性值而不加载整个产品

目前我使用它来获取自定义属性值:

$_item = $this->getProduct()->getId();
$_product = $_product = Mage::getModel('catalog/product')->load($_item);  
$optionvalue = $_product->getCustomAttributeValue();
echo $optionvalue;
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更简单的方法来获得这个自定义值而不加载整个产品?

magento

21
推荐指数
4
解决办法
5万
查看次数

Python:重写循环numpy数学函数以在GPU上运行

有人可以帮我改写这个函数(doTheMath函数)来在GPU上进行计算吗?我现在用了好几天试图绕过它,但没有结果.我想也许有人可以帮助我以你认为适合作为日志的任何方式重写这个函数,因为我在最后给出了相同的结果.我试图使用@jitfrom numba但由于某种原因,它实际上比常规运行代码慢得多.由于样本量很大,我们的目标是大大缩短执行时间,因此我相信GPU是最快的方法.

我会解释一下实际发生的事情.实际数据看起来几乎与下面代码中创建的样本数据完全相同,每个样本分为大约5.000.000行的样本大小或每个文件大约150MB.总共有大约600.000.000行或20GB的数据.我必须循环遍历这些数据,逐个样本然后逐行逐行,从每行中取出最后2000行(或另一行)并运行doTheMath返回结果的函数.然后将该结果保存回硬盘驱动器,我可以使用另一个程序执行其他操作.如下所示,我不需要所有行的所有结果,只需要大于特定数量的行.如果我现在在python中运行我的函数,那么每1.000.000行大约需要62秒.考虑到所有数据以及应该用多快的速度,这是一段很长的时间.

我必须提一下,我借助于文件将真实数据文件上传到RAM,data = joblib.load(file)因此上传数据不是问题,因为每个文件只需要大约0.29秒.上传后,我运行下面的整个代码.花费最长时间的是doTheMath功能.我愿意将我在stackoverflow上获得的所有500个声望点作为奖励给那些愿意帮我重写这个简单代码以在GPU上运行的人.我的兴趣特别在于GPU,我真的很想看看它是如何解决这个问题的.

编辑/更新1: 这是一个指向真实数据的小样本的链接:data_csv.zip大约102000行真实数据1和2000行用于真实数据2a和data2b.用于minimumLimit = 400实际样本数据

编辑/更新2: 对于这篇文章后面的人,这里是以下答案的简短摘要.到目前为止,我们对原始解决方案有4个答案.@Divakar提供的那个只是对原始代码的调整.在这两个调整中,只有第一个实际上适用于这个问题,第二个是一个很好的调整但不适用于此.在其他三个答案中,其中两个是基于CPU的解决方案和一个tensorflow-GPU尝试.Paul Panzer的Tensorflow-GPU似乎很有前景,但是当我在GPU上实际运行它时它比原来慢,所以代码仍然需要改进.

另外两个基于CPU的解决方案由@PaulPanzer(一个纯粹的numpy解决方案)和@MSeifert(一个numba解决方案)提交.与原始代码相比,这两种解决方案都能提供非常好的结果和两种处理数据.在Paul Panzer提交的两个中,速度更快.它在大约3秒内处理大约1.000.000行.唯一的问题是较小的batchSizes,这可以通过切换到MSeifert提供的numba解决方案,或者甚至是在下面讨论的所有调整之后的原始代码来克服.

我非常高兴并感谢@PaulPanzer和@MSeifert所做的关于他们答案的工作.不过,由于这是一个关于基于GPU的解决方案的问题,我等着看是否有人愿意尝试GPU版本,看看与当前的CPU相比,GPU上的数据处理速度有多快解决方案.如果没有其他答案胜过@PaperPanzer的纯粹numpy解决方案那么我会接受他的答案作为正确的答案并得到赏金:)

编辑/更新3: @Divakar已经发布了一个新的答案与GPU的解决方案.在对真实数据进行测试之后,速度甚至与CPU对应解决方案无法相比.GPU在大约1.5秒内处理大约5.000.000.这太不可思议了:)我对GPU解决方案感到非常兴奋,感谢@Divakar发布它.我感谢@PaulPanzer和@MSeifert的CPU解决方案:)现在我的研究继续以令人难以置信的速度归功于GPU :)

import pandas as pd
import numpy as np
import time

def doTheMath(tmpData1, data2a, data2b):
    A = tmpData1[:, 0]
    B = tmpData1[:,1]
    C = tmpData1[:,2]
    D = tmpData1[:,3]
    Bmax = B.max()
    Cmin  = C.min()
    dif = (Bmax - Cmin)
    abcd = ((((A - Cmin) / …
Run Code Online (Sandbox Code Playgroud)

python numpy theano numba tensorflow

20
推荐指数
3
解决办法
5421
查看次数

numpy数组连接:"ValueError:所有输入数组必须具有相同的维数"

如何连接这些numpy数组?

首先np.array是一个形状(5,4)

[[  6487    400 489580      0]
 [  6488    401 492994      0]
 [  6491    408 489247      0]
 [  6491    408 489247      0]
 [  6492    402 499013      0]]
Run Code Online (Sandbox Code Playgroud)

第二个np.array有形状(1,5)

[  16.   15.   12.  12.  17. ]
Run Code Online (Sandbox Code Playgroud)

最后的结果应该是

[[  6487    400    489580    0   16]
 [  6488    401    492994    0   15]
 [  6491    408    489247    0   12]
 [  6491    408    489247    0   12]
 [  6492    402    499013    0   17]]
Run Code Online (Sandbox Code Playgroud)

我试过np.concatenate([array1, array2]) 但是我得到了这个错误

ValueError: all …

python numpy

20
推荐指数
1
解决办法
6万
查看次数

Keras - fit_generator中的class_weight vs sample_weights

在Keras中(使用TensorFlow作为后端)我正在构建一个模型,该模型使用具有高度不平衡类(标签)的庞大数据集.为了能够运行培训过程,我创建了一个生成器,将数据块提供给fit_generator.

根据fit_generator的文档,生成器的输出可以是元组(inputs, targets)或元组(inputs, targets, sample_weights).考虑到这一点,这里有几个问题:

  1. 我的理解是class_weight关于整个数据集sample_weights的所有类的权重,而关于生成器创建的每个单独的块的所有类的权重.那是对的吗?如果没有,有人可以详细说明此事吗?
  2. 是否有必要给双方class_weightfit_generator,然后sample_weights为每个块的输出?如果是,那为什么呢?如果不是那么哪一个更好?
  3. 如果我应该sample_weights为每个块提供,如果特定块中缺少某些类,如何映射权重?让我举个例子.在我的整个数据集中,我有7个可能的类(标签).因为这些类是高度不平衡的,所以当我创建较小的数据块作为输出时fit_generator,特定块中缺少某些类.我应该如何sample_weights为这些块创建?

keras tensorflow

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

Outlook等待几秒钟然后执行

我在Outlook 2010中有一个简单的VBA代码,可以自动打印任何传入的电子邮件.

此脚本设置为每次通过规则进入电子邮件时运行.

这是代码:

Sub printradu(Item As Outlook.MailItem)
       MessageAndAttachmentProcessor Item, True
End Sub
Run Code Online (Sandbox Code Playgroud)

如何使此脚本等待10秒然后执行它.我需要这样的东西:

Sub printradu(Item As Outlook.MailItem)
       'Wait 10 seconds then execute the code below:
       MessageAndAttachmentProcessor Item, True
End Sub
Run Code Online (Sandbox Code Playgroud)

vba outlook-vba

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

熊猫:从另一列中的每个唯一值中获取一列的最大值

如何获得另一列中每个唯一值的一列最高值,以及如何返回相同的数据帧结构。这是一个熊猫数据框示例?

       reg.nr   counter      value     ID2  categ             date
1       37367       421     231385      93      A       20.01.2004
2       37368       428     235156      93      B       21.01.2004
3       37369       408     234251      93      C       22.01.2004
4       37372       403     196292      93      D       23.01.2004
5       55523       400     247141      139     E       24.01.2004
6       55575       415     215818      139     F       25.01.2004
7       55576       402     204404      139     A       26.01.2004
8       69940       402     62244       175     B       27.01.2004
9       69941       402     38274       175     C       28.01.2004
10      69942       404     55171       175     D       29.01.2004
11      69943       416 …
Run Code Online (Sandbox Code Playgroud)

python pandas

5
推荐指数
2
解决办法
3435
查看次数

Keras和TensorFlow:什么意思是"设备序号0和1之间不支持对等访问"以及如何修复它?

我安装了2个GPU,当我训练模型时,我收到以下消息.什么意思是"设备序数0和1 之间不支持对等访问""设备序号1和0之间不支持对等访问"?它是一个错误是我需要修复的东西吗?我的意思是,模型本身最终成功训练.我认为它只使用其中一个GPU,而不是两者.但我想了解此消息并解决问题.有什么我需要做的吗?

I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:135] successfully opened CUDA library cublas64_80.dll locally
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:135] successfully opened CUDA library cudnn64_5.dll locally
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:135] successfully opened CUDA library cufft64_80.dll locally
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:135] successfully opened CUDA library nvcuda.dll locally
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:135] successfully opened CUDA library curand64_80.dll locally
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "BestSplits" device_type: "CPU"') for unknown op: BestSplits
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "CountExtremelyRandomStats" device_type: "CPU"') for unknown op: CountExtremelyRandomStats
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "FinishedNodes" device_type: "CPU"') for unknown op: FinishedNodes …
Run Code Online (Sandbox Code Playgroud)

keras tensorflow

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

Keras多个二进制输出

有人可以帮我理解这个问题.

我必须训练一个神经网络,它应该输出200个相互独立的类别,这些类别中的每一个都是从0到1的百分比.对我而言,这似乎是一个binary_crossentropy问题,但我在互联网上看到的每个例子都使用binary_crossentropy单个输出.由于我的输出应该是200,如果我申请binary_crossentropy,这是正确的吗?

这是我的想法,是一个正确的方法还是我应该改变它?

inputs = Input(shape=(input_shape,))
hidden = Dense(2048, activation='relu')(inputs)
hidden = Dense(2048, activation='relu')(hidden)
output = Dense(200, name='output_cat', activation='sigmoid')(hidden)
model = Model(inputs=inputs, outputs=[output])
loss_map = {'output_cat': 'binary_crossentropy'}
model.compile(loss=loss_map, optimizer="sgd", metrics=['mae', 'accuracy'])
Run Code Online (Sandbox Code Playgroud)

neural-network deep-learning keras

5
推荐指数
3
解决办法
3064
查看次数

以块为单位循环通过Pandas Dataframe

给出以下数据帧

      open    high     low   close    volume
0     74.090  74.144  74.089  74.136  0.000012
1     74.110  74.143  74.009  74.072  0.000419
2     74.074  74.190  74.063  74.081  0.000223
3     74.100  74.244  74.085  74.182  0.000429
4     74.194  74.222  74.164  74.199  0.000090
5     74.198  74.265  74.181  74.213  0.000071
6     74.223  74.244  74.120  74.174  0.000124
7     74.181  74.229  74.132  74.161  0.000087
8     74.164  74.337  74.126  74.324  0.000299
9     74.303  74.407  74.302  74.400  0.000185
10    74.408  74.440  74.373  74.409  0.000163
11    74.437  74.438  74.399  74.418  0.000208
12    74.428 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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