我想在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)
谢谢你的任何提示!
我认为这很容易,但我搜索了互联网和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发生了变化.任何人都可以提供任何提示吗?
谢谢!
假设我的数据框的索引是dataframe.groupby(lambda x:x.year)
月度时间步长,我知道我可以用来将每月数据分组到每年并应用其他操作.有没有什么方法可以快速分组,让我们说十年?
谢谢你的任何提示.
实际上标题并没有完全反映我想问的问题.我的目的是这样的:我正在使用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的方式吗?我想我可以使用装饰器,但没有想出来.任何人都可以提出一些想法?
谢谢!!
任何人都可以解释我如何在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
如何让第二种情况起作用?否则我必须写一些乏味的循环.非常感谢.
一个非常简单的问题,是否有某种方法可以不断显示vim打开的文件底部的当前工作目录?谢谢.
请注意,这是一个不同的问题: 如何在Vim中永久显示当前文件的路径?
我们想要显示当前文件的完整路径,但我想要的是显示文件底部的两行,可能是两行:当前查看的完整路径; 另一个用于当前工作目录.这两个可能不同,因为我们可以打开一个不在当前工作目录中的文件.
我正在尝试制作一张带有颜色的地理地图,其中像素的颜色取决于 (x,y) 的二维,就像从一份出版物中提取的一样:
我在网上搜索了一下,这就是我到达的地方:
https://gist.github.com/ChaoYue/81eb01b558f068f11ee741c56557a6a2
简而言之,我知道如何通过 x 轴值拾取颜色,并使用 y 轴值作为颜色饱和度、亮度或透明度的指示符。或者以某种方式将此 (x,y) 信息转换回线性空间并从 matplotlib 颜色图中选择颜色。但问题是,例如,假设我想要颜色为 lowerleft=blue,lowerright=green; 左上=红色,右上=橙色。如何在两者之间插入像素的颜色?或者也许这个例子与色彩理论相矛盾并且不可能?等效的问题是:如何制作如上图所示的颜色条图例?
这些是对我有帮助的在线资源,但它们并没有直接给出我正在寻找的说明:
我把问题缩短了.实际上我的数据比这长得多.
我有一个像这样的文件:
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)
我想我需要这样的东西: …
我有一个用户案例,假设我有三个系列数据: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脚本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之后才会在屏幕上打印异常.我想这应该很容易,所以提前感谢您的帮助.
假设我有一个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)