小编wis*_*wit的帖子

ipython如何执行多条历史记录行

在ipython中,我们可以使用

_ih[32:39] 
Run Code Online (Sandbox Code Playgroud)

显示32到39之间的历史记录行.如何直接执行这些历史记录行?

python ipython

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

如何在Bash中使用复杂条件表达式中的逻辑非运算符?

我想在bash中有以下条件表达式的逻辑,我该怎么做?

if [[ $var==2 || $var==30 || $var==50 ]] ; then
  do something
fi
Run Code Online (Sandbox Code Playgroud)

我怎样才能在上面的表达式中直接添加逻辑,将它再次更改为以下内容非常繁琐:

if [[ $var!=2 && $var!=30 && $var==50 ]] ; then
  do something
fi
Run Code Online (Sandbox Code Playgroud)

谢谢你的任何提示!

bash conditional logical-operators

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

如何在python matplotlib中使用set_position方法修复轴位置?

我认为这很容易,但我搜索了互联网和matplotlib用户的邮件列表,但无法找到答案.ax2是图"fig"中"ax"轴内的插入轴,我通过以下方式制作:http: //matplotlib.sourceforge.net/examples/pylab_examples/axes_demo.html

但现在我的问题是我无法修复ax2我想要的确切位置,似乎draw()命令改变了这个:

In [352]:
ax2.set_position([0.125,0.63,0.25,0.25])

In [353]:
ax2.get_position()

Out[353]:
Bbox(array([[ 0.125,  0.63 ],
       [ 0.375,  0.88 ]]))

In [354]:
draw()

In [355]:
ax2.get_position()

Out[355]:
Bbox(array([[ 0.15625,  0.63   ],
       [ 0.34375,  0.88   ]]))
Run Code Online (Sandbox Code Playgroud)

注意,在"draw()"命令之后,ax2的x0发生了变化.任何人都可以提供任何提示吗?

谢谢!

python position axes matplotlib

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

大熊猫数据集团年度指数十年

假设我的数据框的索引是dataframe.groupby(lambda x:x.year)月度时间步长,我知道我可以用来将每月数据分组到每年并应用其他操作.有没有什么方法可以快速分组,让我们说十年?

谢谢你的任何提示.

python pandas

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

使用python decorator自动替换函数参数默认值?

实际上标题并没有完全反映我想问的问题.我的目的是这样的:我正在使用matplotlib编写一些绘图函数.我有一系列用于不同绘图目的的功能.比如line_plot()用于行,bar_plot()用于bar等,例如:

import matplotlib.pyplot as plt
def line_plot(axes=None,x=None,y=None):
    if axes==None:
        fig=plt.figure()
        axes=fig.add_subplot(111)
    else:
        pass
    axes.plot(x,y)

def bar_plot(axes=None,x=None,y=None):
    if axes==None:
        fig=plt.figure()
        axes=fig.add_subplot(111)
    else:
        pass
    axes.bar(left=x,height=y)
Run Code Online (Sandbox Code Playgroud)

然而问题是,对于定义的每个函数,我必须重复这部分代码:

    if axes==None:
        fig=plt.figure()
        axes=fig.add_subplot(111)
    else:
        pass
Run Code Online (Sandbox Code Playgroud)

有没有办法像使用装饰器,我可以在绘图功能的定义之前应用,它会自动执行代码的重复部分?因此,我不必每次都重复它们.

一个可能的选择是定义一个这样的函数:

def check_axes(axes):
    if axes==None:
        fig=plt.figure()
        axes=fig.add_subplot(111)
        return axes
    else:
        return axes
Run Code Online (Sandbox Code Playgroud)

那么例子就像:

import matplotlib.pyplot as plt    
def line_plot(axes=None,x=None,y=None):
    axes=check_axes(axes)
    axes.plot(x,y)

def bar_plot(axes=None,x=None,y=None):
    axes=check_axes(axes)
    axes.bar(left=x,height=y)
Run Code Online (Sandbox Code Playgroud)

但是有更好/更干净/更pythonic的方式吗?我想我可以使用装饰器,但没有想出来.任何人都可以提出一些想法?

谢谢!!

python arguments function decorator

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

如何在bash中使用变量名生成循环数序列?

任何人都可以解释我如何在bash for循环中使用变量名来生成一系列数字?

for year in {1990..1997}
do
  echo ${year}
done
Run Code Online (Sandbox Code Playgroud)

结果:

1990 1991 1992 1993 1994 1995 1996 1997

然而

year_start=1990
year_end=1997
for year in {${year_start}..${year_end}}
do
  echo ${year}
done
Run Code Online (Sandbox Code Playgroud)

结果:

{} 1990..1997

如何让第二种情况起作用?否则我必须写一些乏味的循环.非常感谢.

bash for-loop sequences

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

如何在vim中不断显示当前的工作目录

一个非常简单的问题,是否有某种方法可以不断显示vim打开的文件底部的当前工作目录?谢谢.

请注意,这是一个不同的问题: 如何在Vim中永久显示当前文件的路径?

我们想要显示当前文件的完整路径,但我想要的是显示文件底部的两行,可能是两行:当前查看的完整路径; 另一个用于当前工作目录.这两个可能不同,因为我们可以打开一个不在当前工作目录中的文件.

vim

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

如何使用 matplotlib 制作双变量或二维颜色图?

我正在尝试制作一张带有颜色的地理地图,其中像素的颜色取决于 (x,y) 的二维,就像从一份出版物中提取的一样:

左下角是二维颜色条图例,其颜色取决于两个变量的变化

我在网上搜索了一下,这就是我到达的地方:

https://gist.github.com/ChaoYue/81eb01b558f068f11ee741c56557a6a2

简而言之,我知道如何通过 x 轴值拾取颜色,并使用 y 轴值作为颜色饱和度、亮度或透明度的指示符。或者以某种方式将此 (x,y) 信息转换回线性空间并从 matplotlib 颜色图中选择颜色。但问题是,例如,假设我想要颜色为 lowerleft=blue,lowerright=green; 左上=红色,右上=橙色。如何在两者之间插入像素的颜色?或者也许这个例子与色彩理论相矛盾并且不可能?等效的问题是:如何制作如上图所示的颜色条图例?

这些是对我有帮助的在线资源,但它们并没有直接给出我正在寻找的说明:

有没有办法在 matplotlib 中使用二元颜色图?

https://github.com/matplotlib/matplotlib/issues/4369

python matplotlib colorbar colormap

6
推荐指数
0
解决办法
1245
查看次数

如何在正则表达式中使用awk for循环的索引

我把问题缩短了.实际上我的数据比这长得多.

我有一个像这样的文件:

aa, bb, cc, dd, ee, 4
ff, gg, hh, ii, jj, 5
kk, ll, mm, nn, oo, 3
pp, qq, rr, ss, tt, 2
uu, vv, ww, xx, yy, 5
aa, bb, cc, dd, ee, 2
Run Code Online (Sandbox Code Playgroud)

现在我想使用awk选择最后一列中具有相同编号的每一行并将其重定向到一个新文件,这些新文件将根据最后一列中的数字而有所不同.例如.t2.txt,t3.txt,t4.txt,t5.txt将分别保留最后一个数字为2,3,4,5的行.

在t2.txt中:

pp, qq, rr, ss, tt, 2
aa, bb, cc, dd, ee, 2
Run Code Online (Sandbox Code Playgroud)

在t3.txt中:

kk, ll, mm, nn, oo, 3
Run Code Online (Sandbox Code Playgroud)

在t4.txt中:

aa, bb, cc, dd, ee, 4
Run Code Online (Sandbox Code Playgroud)

在t5.txt中:

ff, gg, hh, ii, jj, 5
uu, vv, ww, xx, yy, 5
Run Code Online (Sandbox Code Playgroud)

我想我需要这样的东西: …

regex awk redirect for-loop

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

如何使用颜色图为 matplotlib 散点图中的特定点设置标记类型

我有一个用户案例,假设我有三个系列数据:x、y、z。我想使用 (x,y) 作为坐标和 z 作为散点的颜色,使用 plt.scatter 的 cmap 关键字制作散点图。但是,我想通过使用与其他点不同的标记类型和大小来突出显示某些特定点。

?一个最小的例子如下:

x,y,z = np.random.randn(3,10)
plt.scatter(x,y,c=z,cmap=matplotlib.cm.jet)
plt.colorbar()?
Run Code Online (Sandbox Code Playgroud)

?如果我想为 (x[5],y[5],z[5]) 使用不同的标记类型,我该怎么做?我能想到的唯一方法是使用 plt.scatter([x[5],y[5]) 再次绘制该点,但通过手动查找与 z[5] 对应的颜色图 ?color 来定义颜色。然而,这是相当乏味的。有没有更好的办法?

python matplotlib

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

如何在bash中调用的python脚本遇到错误时停止bash脚本?

我有一个非常简单的问题,如标题中所述.我在网上搜索了一下,发现答案对我来说并不容易.最小的例子是,我有一个python脚本python_script.py:

#!/us/bin/python                                                           

import sys                                                                  

number = int(sys.argv[1])                                                        

if number <= 10:                                                            
    pass                                                                    
else:                                                                       
    raise ValueError('Number is higher than 10!')                           
    sys.exit(1)                                                                                     
Run Code Online (Sandbox Code Playgroud)

然后我有一个bash脚本bash_script.sh,调用python脚本.

#!/bin/bash                                                                 

for num in {1..100}                                                         
do                                                                          
  python python_script.py ${num}                                            
done          
Run Code Online (Sandbox Code Playgroud)

我试图做的是:在python脚本中引发异常后,我希望bash脚本立即停止(即,在此示例中,当num> 10时).但是现在使用这两个脚本,所有从1到100的num循环都在bash脚本中执行,但只有在10之后才会在屏幕上打印异常.我想这应该很容易,所以提前感谢您的帮助.

python error-handling bash shell exception

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

如何将MultiIndex的第一级作为列?

假设我有一个MultiIndex数据帧,如:

In [1]: arrays = [['one','one','one','two','two','two'],[1,2,3,1,2,3]]      

In [2]: df = pa.DataFrame(randn(6,1),index=pa.MultiIndex.from_tuples(zip(*arrays)),columns=['A'])

In [3]: df                                                                  
Out[3]:                                                                     
              A                                                             
one 1  0.229037                                                             
    2 -1.640695                                                             
    3  0.908127                                                             
two 1 -0.918750                                                             
    2  1.170112                                                             
    3 -2.620850                                                             
Run Code Online (Sandbox Code Playgroud)

我想将其更改为新的数据帧,将列作为MultiIndex数据帧的第一级索引?有一个简单的方法吗?(以下为例)

In [12]: dft = df.ix['one']                                                 

In [13]: dft = dft.rename(columns={'A':'one'})                              

In [14]: dft['two'] = df.ix['two']['A']                                     

In [15]: dft                                                                
Out[15]:                                                                    
        one       two                                                       
1  0.229037 -0.918750                                                       
2 -1.640695  1.170112                                                       
3  0.908127 -2.620850                                                       
Run Code Online (Sandbox Code Playgroud)

pandas

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