小编luf*_*ffe的帖子

在Matplotlib中注释时间序列图

我有一个日期(日期时间对象)的索引数组(x)和一个实际值数组(y:债券价格).做(在iPython中):

plot(x,y)
Run Code Online (Sandbox Code Playgroud)

生成一个完美的时间序列图,x轴标有日期.到目前为止没问题.但我想在某些日期添加文字.例如,在2009-10-31,我希望显示文本"事件1",其中箭头指向该日期的y值.

我已经阅读了关于text()annotate()的Matplotlib文档但无济于事.它只涵盖了标准编号的x轴,我无法推断如何在我的问题上运用这些例子.

谢谢

python numpy matplotlib

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

Pandas的合并返回一个列,其中_x附加到名称

我需要数据帧,df1有列A,B,C,D ......df2有列A,B,E,F ...

我要合并的键位于A列.在两个数据帧中B也(很可能)是相同的.虽然这是一个大数据集,但我正在进行清洁,所以我对所有内容都没有非常好的概述.

我做

merge(df1, df2, on='A')
Run Code Online (Sandbox Code Playgroud)

结果包含一个名为B_x的列.由于数据集是大而凌乱我没有试图研究如何B_X不同于DF1DF2

所以我的问题只是一般性的:当Pandas将_x附加到合并数据框中的列名时,它意味着什么?

谢谢

python pandas

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

DataFrame:添加具有组大小的列

我有以下数据帧:

    fsq digits  digits_type
0    1   1       odd
1    2   1       odd
2    3   1       odd
3    11  2       even
4    22  2       even
5    101 3       odd
6    111 3       odd
Run Code Online (Sandbox Code Playgroud)

我想添加一个最后一列,count包含属于数字组的fsq ,即:

    fsq digits  digits_type   count
0    1   1       odd          3
1    2   1       odd          3
2    3   1       odd          3
3    11  2       even         2
4    22  2       even         2
5    101 3       odd          2
6    111 3       odd          2
Run Code Online (Sandbox Code Playgroud)

由于有3个 …

python pandas pandas-groupby

12
推荐指数
2
解决办法
3859
查看次数

Numpy:如何检查数组是否包含某些数字?

例如:我有a = np.array([123, 412, 444])b = np.array([123, 321])

我想知道是否a包含所有元素b.这有简单的操作吗?在这种情况下,这不是真的.

python numpy

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

滑动窗口和记忆的计算

我正在研究Project Euler Problem 50,它指出:

素数41可以写成六个连续素数的总和:

41 = 2 + 3 + 5 + 7 + 11 + 13这是连续素数的最长和,它加到低于一百的素数.

低于一千的连续素数的最长和加上一个素数,包含21个项,并且等于953.

哪个素数低于一百万,可以写成最连续素数的总和?

为了确定素数P中的项(如果它可以写成素数的总和),我使用所有素数的滑动窗口(按递增顺序)直到(但不包括)P,并计算所有的总和这些窗口,如果总和等于考虑的素数,我算一下窗口的长度......

这适用于1000以下的所有素数,但是对于高达10**6的素数来说它非常慢,所以我希望备忘录会有所帮助; 在计算滑动窗口的总和时,做了很多双重工作......(对吧?)

所以我在网上找到了标准的memoizaton实现,并将其粘贴在我的代码中,这是正确的吗?(我不知道应该怎么在这里工作......)

primes = tuple(n for n in range(1, 10**6) if is_prime(n)==True)

count_best = 0


##http://docs.python.org/release/2.3.5/lib/itertools-example.html:
## Slightly modified (first for loop)
from itertools import islice
    def window(seq):
    for n in range(2, len(seq) + 1):

        it = iter(seq)
        result = tuple(islice(it, n))
        if len(result) == n:
            yield result …
Run Code Online (Sandbox Code Playgroud)

python primes memoization

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

iPython nbconvert和latex:使用.eps而不是.png来绘制图表

我有一个包含内联图的iPython笔记本(即它包含命令图(x,y)).当我发出命令ipython nbconvert --to latex --post PDF --SphinxTransformer.author ='Myself'MyNotebook.ipynb时,生成的.PDF文件包含该图,但它已导出到.PNG,所以它没有看起来很好(像素化).如何告诉nbconvert将所有图表/数字导出到.E​​PS?

谢谢

ipython

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

Matplotlib的matshow不与网格对齐

我有一个代表网格的6x6矩阵.在该网格的一部分,我有一个较小的网格(3x3)代表如下:

In [65]:

arr = np.zeros((6,6))
arr[0:3, 0:3] = 1
arr
Out[65]:
array([[ 1.,  1.,  1.,  0.,  0.,  0.],
       [ 1.,  1.,  1.,  0.,  0.,  0.],
       [ 1.,  1.,  1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.]])
Run Code Online (Sandbox Code Playgroud)

我想绘制这个,但是matplotlib错了,你可以在下面看到.红色正方形应该覆盖水平轴和垂直轴上从0到3的区域.

In [88]:

plt.matshow(arr)
plt.grid()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我该如何解决?谢谢

python numpy matplotlib

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

正确返回函数返回size_t的错误代码的方法

我有一个探测数组的函数,如果探测成功,则返回一个数组索引.

在我的代码中,type_t为了清楚起见,我已经为数组索引a制作了所有类型.

保留此功能的清晰度的优先方法是什么?我应该将一个指针参数带到一个错误变量并设置它吗?

inline size_t
lin_search(const double *pxa, const double x, const size_t idxlow, const size_t idxhigh)
{
    for (size_t i = idxlow; i < idxhigh; i++)
    {
        if (pxa[i] <= x && pxa[i+1] > x)
            return i;
    }

    return -1; // If I change the return type to f.ex long int this works
               // but I am no longer consistent

}
Run Code Online (Sandbox Code Playgroud)

然后我可以用它作为

index = linsearch(parray, x, 0, n - 1);
if (index == -1)
    ... not found
Run Code Online (Sandbox Code Playgroud)

c

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

Bash:以人类可读格式输出来自wc的行数

那可能吗?以直截了当的方式做wc我需要花费精力才能看到​​该文件包含超过4000万行:

$ wc -l 20150210.txt 
    45614736 20150210.txt
Run Code Online (Sandbox Code Playgroud)

我四处搜索并且numfmt出现了,但显然在OSX上没有(也没有brew).那么在OSX上有一个简单的方法吗?谢谢.

macos bash wc

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

记住NumPy矢量化函数

我有一个函数is_prime(n),如果n是素数则返回True,否则返回False.在NumPy中我循环,检查数组是否包含素数,并且每次迭代时数组的开始都是相同的,所以我想记住is_prime(n)函数以避免大量不必要的计算.

由于我有一个数组,我想向量化is_prime(n),所以我可以逐个元素,NumPy样式应用于数组.我使用NumPy教程中的一行(稍后显示)执行此操作

我还使用了网上找到的memoization模板:

def memoize(function):
    cache = {}
    def decorated_function(*args):
        if args in cache:
            return cache[args]
        else:
            val = function(*args)
            cache[args] = val
            return val
    return decorated_function
Run Code Online (Sandbox Code Playgroud)

然后:

is_prime = memoize(is_prime)
Run Code Online (Sandbox Code Playgroud)

但是,如果我现在对memoized is_prime函数进行矢量化,那么V_prime现在是否已正确记忆?:

V_prime = np.vectorize(is_prime)
Run Code Online (Sandbox Code Playgroud)

谢谢

python numpy

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

Python没有在类中显示print语句的结果

这可能是微不足道的,但在搜索时我没有得到解决方案:

我有以下简单的类:

class Celcius:
    def __init__(self, temperature=0):
        self.temperature = temperature

    def to_fahrenheit(self):
        return (self.temperature*1.8) + 32

    def get_temperature(self):
        print "getting temp"
        return self._temperature

    def set_temperature(self, value):
        if value < -273:
            raise ValueError("dayum u trippin' fool")
        print "setting temp"
        self._temperature = value

    temperature = property(get_temperature, set_temperature)

c = Celcius()
Run Code Online (Sandbox Code Playgroud)

当我在Sublime Text 3(通过点击cmd + B)中运行它时,控制台不会打印任何内容.我应该看到:

setting temp
Run Code Online (Sandbox Code Playgroud)

如果我将以下内容添加到脚本的末尾:

print "banana"
print "apple"
Run Code Online (Sandbox Code Playgroud)

这两行都按预期打印.

如果我从终端运行上面的python脚本(使用python -u,或者只是python),结果完全相同.我想我错过了一些非常愚蠢的东西.谢谢

python python-2.7

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

从向量创建矩阵,所有向量元素向下移动2步

说我有

v = rbind(1, 1, 0, 0, 0, 0)
# > v
# [,1]
# [1,]    1
# [2,]    1
# [3,]    0
# [4,]    0
# [5,]    0
# [6,]    0
Run Code Online (Sandbox Code Playgroud)

我怎么会这样?

# > m
#       [,1]  [,2]  [,3]
# [1,]    1     0     0
# [2,]    1     0     0
# [3,]    0     1     0 
# [4,]    0     1     0
# [5,]    0     0     1
# [6,]    0     0     1
Run Code Online (Sandbox Code Playgroud)

r

-1
推荐指数
1
解决办法
30
查看次数

标签 统计

python ×8

numpy ×4

matplotlib ×2

pandas ×2

bash ×1

c ×1

ipython ×1

macos ×1

memoization ×1

pandas-groupby ×1

primes ×1

python-2.7 ×1

r ×1

wc ×1