我正在使用ipython Jupyter笔记本.假设我定义了一个在屏幕上占用大量空间的函数.有没有办法折叠细胞?
我希望函数保持执行和可调用,但我想隐藏/折叠单元格以便更好地可视化笔记本.我怎样才能做到这一点?
我有一个带有大量数字和文字的大笔记本.我想将其转换为html文件.但是,我不想导出代码.我使用以下命令
ipython nbconvert --to html notebook.ipynb
Run Code Online (Sandbox Code Playgroud)
但是这个选项也会导出代码.有没有办法将笔记本转换为没有代码的HTML?
我想将超过1个绘图保存到pdf文件中.这是我的代码:
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
def function_plot(X,Y):
plt.figure()
plt.clf()
pp = PdfPages('test.pdf')
graph = plt.title('y vs x')
plt.xlabel('x axis', fontsize = 13)
plt.ylabel('y axis', fontsize = 13)
pp.savefig(graph)
function_plot(x1,y1)
function_plot(x2,y2)
Run Code Online (Sandbox Code Playgroud)
我知道我的想法很乱,但我找不到编写代码的方法.问题是我需要我的图形标记x和y轴.
我使用下面的 python 脚本来检查root
我的 ftp 服务器上是否存在文件。
from ftplib import FTP
ftp = FTP('ftp.hostname.com')
ftp.login('login', 'password')
folderName = 'foldername'
if folderName in ftp.nlst() :
print 'YES'
else : print 'NO'
Run Code Online (Sandbox Code Playgroud)
如何修改上述脚本以查看特定文件夹而不是root
目录?
例如,我想查看目录中是否foo
存在名为的文件夹名称www
。
在goal
我的问题,是看该文件夹foo
里面存在的www
目录,如果是打印cool
!如果没有创建一个名为foo
inside的文件夹www
。
我想知道我的数据点的分布,所以首先我绘制了我的数据的直方图.我的直方图如下所示:
其次,为了使它们适合分布,这里是我写的代码:
size = 20000
x = scipy.arange(size)
# fit
param = scipy.stats.gamma.fit(y)
pdf_fitted = scipy.stats.gamma.pdf(x, *param[:-2], loc = param[-2], scale = param[-1]) * size
plt.plot(pdf_fitted, color = 'r')
# plot the histogram
plt.hist(y)
plt.xlim(0, 0.3)
plt.show()
Run Code Online (Sandbox Code Playgroud)
结果是:
我究竟做错了什么?
我有以下需要解决的3个非线性方程组:
-xyt + HF = 0
-2xzt + 4yzt - xyt + 4z ^ 2t - M1F = 0
-2xt + 2yt + 4zt - 1 = 0
其中x,HF和M1F是已知参数.因此,y,z和t是要计算的参数.
尝试解决问题:
def equations(p):
y,z,t = p
f1 = -x*y*t + HF
f2 = -2*x*z*t + 4*y*z*t - x*y*t + 4*t*z**2 - M1F
f3 = -2*x*t + 2*y*t + 4*z*t - 1
return (f1,f2,f3)
y,z,t = fsolve(equations)
print equations((y,z,t))
Run Code Online (Sandbox Code Playgroud)
但问题是如果我想使用scipy.optimize.fsolve
那么我应该输入一个初始猜测.就我而言,我没有任何初始条件.
还有另一种方法可以解决3个在python中有3个未知数的非线性方程吗?
编辑:
原来我有条件!条件是HF> M1F,HF> 0,M1F> 0.
为了生成这个图,我做了:
bins = np.array([0.03, 0.3, 2, 100])
plt.hist(m, bins = bins, weights=np.zeros_like(m) + 1. / m.size)
Run Code Online (Sandbox Code Playgroud)
但是,正如您所注意到的,我想绘制每个数据点的相对频率的直方图,只有3个不同大小的区间:
bin1 = 0.03 - > 0.3
bin2 = 0.3 - > 2
bin3 = 2 - > 100
直方图看起来很丑,因为最后一个bin的大小相对于其他bin非常大.如何修复直方图?我想改变箱子的宽度,但我不想改变每个箱子的范围.
我正在读取包含以下数据的文件名:
2017-03-23
2018-01-23
2017-07-31
Run Code Online (Sandbox Code Playgroud)
我想阅读每一行并用空格替换连字符。鉴于上面的例子,我应该得到以下信息:
2017 03 23
2018 01 23
2017 07 31
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
#!/bin/sh
filename=extract_dates.dat
line=1
totline=`wc -l < $filename`
while [ $line -le $totline ]
do
date=`sed -n -e ''"$line"'p' $filename | awk '{print $line}'`
echo $date
test=`sed 's/([0-9])-([0-9])/\1\2/g' $date`
echo $test
line=`expr $line + 1`
done
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
sed: 1: "s/([0-9])-([0-9])/\1\2/g": \1 not defined in the RE
Run Code Online (Sandbox Code Playgroud) 我polyfit
用来使我的数据符合一条线.线的方程是形式的y = mx + b
.我试图检索斜率上的误差和y截距的误差.这是我的代码:
fit, res, _, _, _ = np.polyfit(X,Y,1, full = True)
Run Code Online (Sandbox Code Playgroud)
此方法返回残差.但我不想要残留物.所以这是我使用的另一种方法:
slope, intercept, r_value, p_value, std_err = stats.linregress(X,Y)
Run Code Online (Sandbox Code Playgroud)
我知道std_err
在斜率上返回错误.我仍然需要得到y截距的标准偏差.我怎样才能做到这一点?
我想打印一个包含的字符串,{
我想删除其他空格.例如:
print 'Value is {', value, '}'
Run Code Online (Sandbox Code Playgroud)
输出将是:
Value is { 42 }
Run Code Online (Sandbox Code Playgroud)
但我想要:
Value is {42}
Run Code Online (Sandbox Code Playgroud)
我试过了
print 'Value is {{}}'.format(value)
Run Code Online (Sandbox Code Playgroud)
我得到了:
Value is {}
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
我尝试了以下方法:
\n\nimport numpy as np\n\nx = -1.20831312e+05\nprint np.exp(x) # answer: x = 0.0\nprint np.expm1(x) # answer: x = -1.0\n
Run Code Online (Sandbox Code Playgroud)\n\n根据沃尔夫勒姆的说法,应该是4.24578... \xc3\x97 10^-52477
。我该如何解决这个问题?我需要比较np.exp(x)
的小值x
。
我有以下字符串:
a = 'P/2008 A3 (SOHO)'
Run Code Online (Sandbox Code Playgroud)
我想将其更改为:
a = 'P/2008-A3-SOHO'
Run Code Online (Sandbox Code Playgroud)
尝试解决问题:
步骤1:
b = re.sub("\s", "-", a)
print b
Run Code Online (Sandbox Code Playgroud)
输出:
P/2008-A3-(SOHO)
Run Code Online (Sandbox Code Playgroud)
第2步:
c = re.sub("[\(\)]", "", b)
print c
Run Code Online (Sandbox Code Playgroud)
输出:
P/2008-A3-SOHO
Run Code Online (Sandbox Code Playgroud)
我得到了我需要的输出,但是有更有效的方法吗?我想一步解决它.
我写了以下bash脚本:
function getqsubnumber {
# Return how many simulations ($qsubnumber) are currently running
qsubnumber=`qstat | grep p00 | wc -l`
return $qsubnumber
}
getqsubnumber
qs=$?
if [ $qs -le $X ]
then
echo 'Running one more simulation'
$cmd # submit one more job to the cluster
else
echo 'Too many simulations running ... Sleeping for 2 min'
sleep 120
Run Code Online (Sandbox Code Playgroud)
我的想法是我在集群上提交工作.如果有多个X
作业同时运行,我想等待2分钟.
该代码适用于X=50
和X=200
.由于某些未知原因,它不起作用X=400
.知道为什么吗?该脚本永远不会等待2分钟,它会继续提交作业.
python ×10
bash ×2
matplotlib ×2
numpy ×2
regex ×2
scipy ×2
data-fitting ×1
exp ×1
ftp ×1
histogram ×1
ipython ×1
jupyter ×1
linux ×1
lookup ×1
nbconvert ×1
optimization ×1
pdfpages ×1
python-2.7 ×1
sed ×1
shell ×1
statistics ×1
string ×1
subdirectory ×1
terminal ×1
whitespace ×1