小编mch*_*gun的帖子

舍弃熊猫时间戳到分钟

我想DateTimeIndex基于开始和结束时间戳(以纪元以来的微秒给出)创建一个1分钟的间隔pd_date_range().为此,我需要将开始时间戳向上和结束时间戳向下舍入.这是我到目前为止:

import pandas as pd
start = 1406507532491431
end = 1406535228420914

start_ts = pd.to_datetime(start, unit='us') # Timestamp('2014-07-28 00:32:12.491431')
end_ts = pd.to_datetime(end, unit='us') # Timestamp('2014-07-28 08:13:48.420914')
Run Code Online (Sandbox Code Playgroud)

我想要回合:

start_tsTimestamp('2014-07-28 00:32')

end_tsTimestamp('2014-07-28 08:14').

我怎样才能做到这一点?

python pandas

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

MiniBatchKMeans参数

我想用集群Sklearn的Minibatch K均值图像的补丁重现的结果本文.以下是我的数据集的一些信息:

  • 400,000行
  • 108个维度
  • 1600个集群.

我可以获得一些关于如何设置Minibatch KMeans参数的指导吗?目前,惯性开始收敛,但随后它再次突然上升,然后算法终止:

Minibatch iteration 48/1300:mean batch inertia: 22.392906, ewa inertia: 22.500929 
Minibatch iteration 49/1300:mean batch inertia: 22.552454, ewa inertia: 22.509173 
Minibatch iteration 50/1300:mean batch inertia: 22.582834, ewa inertia: 22.520959 
Minibatch iteration 51/1300:mean batch inertia: 22.448639, ewa inertia: 22.509388 
Minibatch iteration 52/1300:mean batch inertia: 22.576970, ewa inertia: 22.520201 
Minibatch iteration 53/1300:mean batch inertia: 22.489388, ewa inertia: 22.515271 
Minibatch iteration 54/1300:mean batch inertia: 22.465019, ewa inertia: 22.507231 
Minibatch iteration 55/1300:mean batch inertia: 22.434557, ewa inertia: …
Run Code Online (Sandbox Code Playgroud)

python k-means scikit-learn

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

使用箭头从带有时区的字符串中解析日期和时间

我有

import arrow
s = '2015/12/1 19:00:00'
tz = 'Asia/Hong_Kong'
Run Code Online (Sandbox Code Playgroud)

如何用Arrow解析这个问题,以便获得带有时区的Arrow对象tz?以下默认为UTC时间.

In [30]: arrow.get(s, 'YYYY/M/D HH:mm:ss')
Out[30]: <Arrow [2015-12-01T19:00:00+00:00]>
Run Code Online (Sandbox Code Playgroud)

我知道该.to功能,但转换时区,但不允许我更改为时区.

python timezone datetime arrow-python

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

快速计算滚动实现波动率的方法

我想计算一组指数的滚动20天实现波动率.这是我用来下载指数价格,计算每日回报和20天实现波动率的代码.

library(quantmod)
library(PerformanceAnalytics)

tickers = c("^RUT","^STOXX50E","^HSI", "^N225", "^KS11")
myEnv <- new.env()
getSymbols(tickers, src='yahoo', from = "2003-01-01", env = myEnv)
index <- do.call(merge, c(eapply(myEnv, Ad), all=FALSE))

#Calculate daily returns for all indices and convert to arithmetic returns
index.ret <- exp(CalculateReturns(index,method="compound")) - 1
index.ret[1,] <- 0

#Calculate realized volatility
realizedvol <- rollapply(index.ret, width = 20, FUN=sd.annualized)
Run Code Online (Sandbox Code Playgroud)

一切都很快,直到最后一行.我还没有计时,但是它的分数是几分钟,而我希望它只需几秒钟.有没有更快的方法来计算实现的波动率?

谢谢.

r xts

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

具有插入错误的SVM分类(基本)

我可能在这里犯了一个非常简单(和愚蠢)的错误,但我无法弄明白.我正在玩Kaggle(数字识别器)的一些数据,并尝试使用带有Caret包的SVM进行分类.如果我只是将标签值作为数字类型train插入函数中,Caret中的函数似乎默认为回归并且性能很差.所以我接下来尝试将其转换为函数的因子factor()并尝试运行SVM分类.下面是一些代码,我生成一些虚拟数据,然后将其插入Caret:

library(caret)
library(doMC)
registerDoMC(cores = 4)

ytrain <- factor(sample(0:9, 1000, replace=TRUE))
xtrain <- matrix(runif(252 * 1000,0 , 255), 1000, 252)

preProcValues <- preProcess(xtrain, method = c("center", "scale"))
transformerdxtrain <- predict(preProcValues, xtrain)

fitControl <- trainControl(method = "repeatedcv", number = 10, repeats = 10)
svmFit <- train(transformerdxtrain[1:10,], ytrain[1:10], method = "svmradial")
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Error in kernelMult(kernelf(object), newdata, xmatrix(object)[[p]], coef(object)[[p]]) : 
  dims [product 20] do not match the length of object [0]
In addition: Warning messages:
1: In …
Run Code Online (Sandbox Code Playgroud)

r svm kernlab

8
推荐指数
1
解决办法
3100
查看次数

Numpy Ceil和Floor"out"Argument

ceil的NumPy 文档中 ,该numpy.ceil函数有两个参数,第二个是out.文档没有说明这个out参数是做什么的,但我假设你可以设置这个函数返回的输出类型,但是我无法让它工作:

In [107]: np.ceil(5.5, 'int')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-107-c05bcf9f1522> in <module>()
----> 1 np.ceil(5.5, 'int')

TypeError: return arrays must be of ArrayType

In [108]: np.ceil(5.5, 'int64')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-108-0937d09b0433> in <module>()
----> 1 np.ceil(5.5, 'int64')

TypeError: return arrays must be of ArrayType
Run Code Online (Sandbox Code Playgroud)

是否可以使用此参数使np.ceil返回为整数?

谢谢.

python numpy

8
推荐指数
2
解决办法
9009
查看次数

Google Refine中的Value.match()正则表达式

我试图从Google Refine的列中提取一系列数字.这是我的代码:

value.match(/[\d]+/)[0]
Run Code Online (Sandbox Code Playgroud)

我的专栏中的数据格式为

abcababcabc 1234566 abcabcbacdf
Run Code Online (Sandbox Code Playgroud)

结果为"null".我不知道为什么!!如果不是\d我尝试,它也是null \w.

regex openrefine

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

泡菜:不安全还是快?

我正在完成一些scipy讲座(http://scipy-lectures.github.io/intro/language/standard_library.html#pickle-easy-persistence),我发现了关于Pickle的这个声明:

Useful to store arbitrary objects to a file. Not safe or fast!
Run Code Online (Sandbox Code Playgroud)

这是什么意思?不安全(根据Pickle文档),因为不是来自未知来源的UnPickle文件或不安全,因为你不总是检索原始对象?

对更安全,更快速的东西有什么选择?我知道cPickle更快,但我不认为它解决了上面更安全的定义.

谢谢.

python pickle

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

在Python中使用大稀疏矩阵的kNN

我有两个大的稀疏矩阵:

In [3]: trainX
Out[3]: 
<6034195x755258 sparse matrix of type '<type 'numpy.float64'>'
        with 286674296 stored elements in Compressed Sparse Row format>

In [4]: testX
Out[4]: 
<2013337x755258 sparse matrix of type '<type 'numpy.float64'>'
        with 95423596 stored elements in Compressed Sparse Row format>
Run Code Online (Sandbox Code Playgroud)

加载总共大约5 GB RAM.请注意,这些矩阵非常稀疏(占用0.0062%).

对于每一行testX,我想找到最近邻trainX,返回其相应的标签,在发现trainY. trainY是一个长度相同的列表,trainX并且有许多类.(一个类由1-5个单独的标签组成,每个标签是20,000个中的一个,但是类的数量与我现在要做的事情无关.)

我正在使用sklearnKNN算法来做到这一点:

from sklearn import neighbors

clf = neighbors.KNeighborsClassifier(n_neighbors=1)
clf.fit(trainX, trainY)
clf.predict(testX[0])
Run Code Online (Sandbox Code Playgroud)

甚至预测1项testX需要一段时间(即30-60秒之类的东西,但如果你乘以200万,那就变得非常不可能了).我的笔记本电脑有16GB的RAM开始交换一下,但确实设法完成了1项testX.

我的问题是,我怎么能这样做才能在合理的时间内完成?在大型EC2实例上说一晚?只是拥有更多的内存并防止交换速度足够快(我的猜测是否定的).也许我可以以某种方式利用稀疏性来加速计算?

谢谢.

python nearest-neighbor sparse-matrix scikit-learn

6
推荐指数
2
解决办法
8504
查看次数

列表字典到字典

我有一个列表字典:

In [72]: params
Out[72]: {'a': [1, 2, 3], 'b': [5, 6, 7, 8]}
Run Code Online (Sandbox Code Playgroud)

我可能有两个以上的键/值对.我想创建一个字典列表,它给出了对应于a和的列表的所有可能组合b:

例如

[{'a':1, 'b'=5}, 
{'a':1, 'b'=6},
{'a':1, 'b'=7},
 ...
{'a':3, 'b'=8},]
Run Code Online (Sandbox Code Playgroud)

我可以通过硬编码键来做到这一点:

for a,b in itertools.product(*p.itervalues()):
    print {'a':a, 'b':b}
Run Code Online (Sandbox Code Playgroud)

但我不想硬编码

  1. 我不知道有多少键/值对
  2. 我不一定知道先进的名字

python dictionary cartesian-product

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