小编Tho*_*wne的帖子

NumPy优于常规Python列表有什么优势?

NumPy优于常规Python列表有什么优势?

我有大约100个金融市场系列,我打算创建一个100x100x100 = 100万个单元的立方体阵列.我将使用每个y和z对每个x进行回归(3变量),以使用标准错误填充数组.

我听说过,对于"大型矩阵",出于性能和可伸缩性的原因,我应该使用NumPy而不是Python列表.事实是,我知道Python列表,它们似乎对我有用.

如果我搬到NumPy,会有什么好处?

如果我有1000个系列(即立方体中有10亿个浮点单元)怎么办?

python arrays numpy list numpy-ndarray

439
推荐指数
5
解决办法
16万
查看次数

在Python中创建一系列日期

我想创建一个日期列表,从今天开始,然后返回任意天数,例如,在我的例子中100天.有没有比这更好的方法呢?

import datetime

a = datetime.datetime.today()
numdays = 100
dateList = []
for x in range (0, numdays):
    dateList.append(a - datetime.timedelta(days = x))
print dateList
Run Code Online (Sandbox Code Playgroud)

python datetime date

315
推荐指数
13
解决办法
34万
查看次数

在PostgreSQL表已经创建之后,我可以为它添加一个UNIQUE约束吗?

我有下表:

 tickername | tickerbbname  | tickertype
------------+---------------+------------
 USDZAR     | USDZAR Curncy | C
 EURCZK     | EURCZK Curncy | C
 EURPLN     | EURPLN Curncy | C
 USDBRL     | USDBRL Curncy | C
 USDTRY     | USDTRY Curncy | C
 EURHUF     | EURHUF Curncy | C
 USDRUB     | USDRUB Curncy | C
Run Code Online (Sandbox Code Playgroud)

对于任何给定tickername/ tickerbbname对,我不希望任何列都有多个列.我已经创建了表并且其中包含大量数据(我已经确保它符合唯一标准).然而,随着它变得越来越大,错误的空间越来越大.

有没有办法UNIQUE在这一点上添加约束?

sql database postgresql indexing unique-constraint

165
推荐指数
4
解决办法
16万
查看次数

获取向量的最后n个元素.有没有比使用length()函数更好的方法?

如果为了论证,我想要Python中10长度向量的最后五个元素,我可以在范围索引中使用" - "运算符,这样:

>>> x = range(10)
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x[-5:]
[5, 6, 7, 8, 9]
>>>
Run Code Online (Sandbox Code Playgroud)

R中最好的方法是什么?有没有比我现在的技术更简洁的方法,即使用length()函数?

> x <- 0:9
> x
 [1] 0 1 2 3 4 5 6 7 8 9
> x[(length(x) - 4):length(x)]
[1] 5 6 7 8 9
> 
Run Code Online (Sandbox Code Playgroud)

这个问题与btw的时间序列分析有关,通常只对最近的数据有用.

indexing r

71
推荐指数
4
解决办法
10万
查看次数

为什么unlist()在R中杀死日期

当我取消列出日期列表时,它会将它们变回数字.这是正常的吗?除了重新申请as.Date之外的任何解决方法?

> dd <- as.Date(c("2013-01-01", "2013-02-01", "2013-03-01"))
> class(dd)
[1] "Date"
> unlist(dd)
[1] "2013-01-01" "2013-02-01" "2013-03-01"
> list(dd)
[[1]]
[1] "2013-01-01" "2013-02-01" "2013-03-01"

> unlist(list(dd))
[1] 15706 15737 15765
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?

r

70
推荐指数
2
解决办法
8221
查看次数

最近的Python工作日

我需要从当前日期减去工作日.

我目前有一些代码需要始终在最近的工作日运行.所以今天可能是今天,如果我们是星期一到星期五,但如果是星期六或星期日,那么我需要把它设置回周末前的星期五.我目前有一些非常笨重的代码来做到这一点:

 lastBusDay = datetime.datetime.today()
 if datetime.date.weekday(lastBusDay) == 5:      #if it's Saturday
     lastBusDay = lastBusDay - datetime.timedelta(days = 1) #then make it Friday
 elif datetime.date.weekday(lastBusDay) == 6:      #if it's Sunday
     lastBusDay = lastBusDay - datetime.timedelta(days = 2); #then make it Friday
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

我可以告诉timedelta在工作日而不是日历日工作吗?

python datetime

66
推荐指数
7
解决办法
10万
查看次数

在numpy数组中查找相同值的序列长度(运行长度编码)

在一个pylab程序(也可能是一个matlab程序)中,我有一个数字表示距离的numpy数组:d[t]是时间距离t(我的数据的时间跨度是len(d)时间单位).

我感兴趣的事件是当距离低于某个阈值时,我想计算这些事件的持续时间.很容易得到一组布尔值b = d<threshold,问题归结为计算真实单词长度的顺序b.但我不知道如何有效地做到这一点(即使用numpy原语),并且我使用数组并进行手动更改检测(即当值从False变为True时初始化计数器,只要值为True就增加计数器,当值返回False时,将计数器输出到序列.但这非常缓慢.

如何在numpy数组中有效地检测那种序列?

下面是一些python代码,说明我的问题:第四个点需要很长时间才能出现(如果没有,增加数组的大小)

from pylab import *

threshold = 7

print '.'
d = 10*rand(10000000)

print '.'

b = d<threshold

print '.'

durations=[]
for i in xrange(len(b)):
    if b[i] and (i==0 or not b[i-1]):
        counter=1
    if  i>0 and b[i-1] and b[i]:
        counter+=1
    if (b[i-1] and not b[i]) or i==len(b)-1:
        durations.append(counter)

print '.'
Run Code Online (Sandbox Code Playgroud)

python matlab numpy matplotlib

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

找到R向量中第一个非NA值的索引位置?

我有一个问题,一个向量在开始时有一堆NA,然后是数据.然而,我的数据的特点是前N个非NA的值可能不可靠,所以我想删除它们并用NA替换它们.

例如,如果我有一个长度为20的向量,并且非NAs从索引位置4开始:

> z
 [1]          NA          NA          NA -1.64801942 -0.57209233  0.65137286  0.13324344 -2.28339326
 [9]  1.29968050  0.10420776  0.54140323  0.64418164 -1.00949072 -1.16504423  1.33588892  1.63253646
[17]  2.41181291  0.38499825 -0.04869589  0.04798073
Run Code Online (Sandbox Code Playgroud)

我想删除前三个非NA值,我相信这是不可靠的,给出这个:

> z
 [1]          NA          NA          NA          NA          NA          NA  0.13324344 -2.28339326
 [9]  1.29968050  0.10420776  0.54140323  0.64418164 -1.00949072 -1.16504423  1.33588892  1.63253646
[17]  2.41181291  0.38499825 -0.04869589  0.04798073
Run Code Online (Sandbox Code Playgroud)

当然,我需要一个通用的解决方案,我永远不知道第一个非NA值何时开始.我该怎么做呢?IE如何找出第一个非NA值的索引位置?

为了完整起见,我的数据实际上被安排在一个数据帧中,其中列中有许多这些矢量,并且每个矢量可以具有不同的非NA起始位置.此外,一旦数据开始,可能会有零星的NA进一步下降,这使我无法简单地计算它们的数量,作为解决方案.

r

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

删除R矩阵中所有数据均为NA的行

可能重复:
删除R中数据文件的空行

如何从矩阵或数据框中删除行,其中行中的所有元素都是NA?

所以要从中得到:

     [,1] [,2] [,3]
[1,]    1    6   11
[2,]   NA   NA   NA
[3,]    3    8   13
[4,]    4   NA   NA
[5,]    5   10   NA
Run Code Online (Sandbox Code Playgroud)

对此:

     [,1] [,2] [,3]
[1,]    1    6   11
[2,]    3    8   13
[3,]    4   NA   NA
[4,]    5   10   NA
Run Code Online (Sandbox Code Playgroud)

因为na.omit的问题是它删除了任何 NAs的行,所以会给我这个:

     [,1] [,2] [,3]
[1,]    1    6   11
[2,]    3    8   13
Run Code Online (Sandbox Code Playgroud)

到目前为止我能做的最好的是使用apply()函数:

> x[apply(x, 1, function(y) !all(is.na(y))),]
     [,1] [,2] [,3]
[1,]    1    6   11
[2,]    3    8   13 …
Run Code Online (Sandbox Code Playgroud)

r

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

Windows下R图形中的抗锯齿(根据Mac)

有没有办法从Windows版本的R中绘制抗锯齿图形?正如你从下面的两个版本中可以看到,Mac版的R打印图形抗锯齿.... Mac版

....虽然Windows版本反锯齿文本,但它不会对实际图形进行反锯齿,如从提升点和网格中可以看到的: Windows版本

这是代码的代码:

library(scatterplot3d) 
attach(mtcars) 
s3d <-scatterplot3d(wt,disp,mpg, pch=16, highlight.3d=TRUE,
  type="h", main="3D Scatterplot")
fit <- lm(mpg ~ wt+disp) 
s3d$plane3d(fit)
Run Code Online (Sandbox Code Playgroud)

我需要最高质量的网页发布.我正在运行Windows 7并从RBloomberg中提取数据,这只能在Windows下运行.

r antialiasing

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