我试过谷歌搜索答案,但没有运气.
我需要使用我的工作超级计算机服务器,但是为了运行我的python脚本,它必须通过shell脚本执行.
例如,我想job.sh执行python_script.py
如何实现这一目标?
我在下面有一个词典:
colors = {
"blue" : "5",
"red" : "6",
"yellow" : "8",
}
Run Code Online (Sandbox Code Playgroud)
如何索引字典中的第一个条目?
colors[0]将返回一个KeyError明显的原因.
我有一个python脚本,在while循环中生成一堆数据.我需要将此数据写入CSV文件,因此它按列而不是行进行写入.
例如,在我的脚本的循环1中,我生成:
(1, 2, 3, 4)
Run Code Online (Sandbox Code Playgroud)
我需要这个在我的csv脚本中反映如下:
Result_1 1
Result_2 2
Result_3 3
Result_4 4
Run Code Online (Sandbox Code Playgroud)
在我的第二个循环中,我生成:
(5, 6, 7, 8)
Run Code Online (Sandbox Code Playgroud)
我需要这样来查看我的csv文件,如下所示:
Result_1 1 5
Result_2 2 6
Result_3 3 7
Result_4 4 8
Run Code Online (Sandbox Code Playgroud)
等等直到while循环结束.有谁能够帮我?
编辑
while循环可以持续超过100,000个循环
我尝试这个计算时遇到溢出错误,但我无法弄清楚原因.
1-math.exp(-4*1000000*-0.0641515994108)
Run Code Online (Sandbox Code Playgroud) python的内存是否有限制?我一直在使用python脚本来计算文件的平均值,该文件最小值为150mb.
根据文件的大小,我有时会遇到一个MemoryError.
可以为python分配更多的内存,所以我没有遇到错误?
编辑:现在的代码如下
注意:文件大小可能有很大差异(最大为20GB),文件的最小大小为150mb
file_A1_B1 = open("A1_B1_100000.txt", "r")
file_A2_B2 = open("A2_B2_100000.txt", "r")
file_A1_B2 = open("A1_B2_100000.txt", "r")
file_A2_B1 = open("A2_B1_100000.txt", "r")
file_write = open ("average_generations.txt", "w")
mutation_average = open("mutation_average", "w")
files = [file_A2_B2,file_A2_B2,file_A1_B2,file_A2_B1]
for u in files:
line = u.readlines()
list_of_lines = []
for i in line:
values = i.split('\t')
list_of_lines.append(values)
count = 0
for j in list_of_lines:
count +=1
for k in range(0,count):
list_of_lines[k].remove('\n')
length = len(list_of_lines[0])
print_counter = 4
for o in range(0,length):
total = 0 …Run Code Online (Sandbox Code Playgroud) 我一直试图找出蓝色峰的半峰全宽(FWHM)(见图).绿色峰和洋红色峰组合构成蓝色峰.我一直在使用以下等式来找到绿色和洋红色峰的FWHM:fwhm = 2*np.sqrt(2*(math.log(2)))*sd其中sd =标准偏差.我创建了绿色和洋红色的峰值,我知道标准偏差,这就是为什么我可以使用这个等式.
我使用以下代码创建了绿色和洋红色峰:
def make_norm_dist(self, x, mean, sd):
import numpy as np
norm = []
for i in range(x.size):
norm += [1.0/(sd*np.sqrt(2*np.pi))*np.exp(-(x[i] - mean)**2/(2*sd**2))]
return np.array(norm)
Run Code Online (Sandbox Code Playgroud)
如果我不知道蓝峰是由两个峰组成的,而我的数据中只有蓝峰,我怎么能找到FWHM?

我一直在用这段代码找到最高峰:
peak_top = 0.0e-1000
for i in x_axis:
if i > peak_top:
peak_top = i
Run Code Online (Sandbox Code Playgroud)
我可以将peak_top2 除以找到半高,然后尝试找到对应于半高的y值,但是如果没有与半高完全匹配的x值,我会遇到麻烦.
我非常确定我正在尝试的解决方案有更优雅的解决方案.
我对数学的了解有限,这就是我可能被困的原因.我有一个光谱,我试图适应两个高斯峰.我可以适应最大的峰值,但我无法适应最小的峰值.我知道我需要对两个峰值的高斯函数求和,但我不知道哪里出了问题.显示当前输出的图像:

蓝线是我的数据,绿线是我目前适合的.在我的数据中主峰左侧有一个肩膀,我目前正在尝试使用以下代码:
import matplotlib.pyplot as pt
import numpy as np
from scipy.optimize import leastsq
from pylab import *
time = []
counts = []
for i in open('/some/folder/to/file.txt', 'r'):
segs = i.split()
time.append(float(segs[0]))
counts.append(segs[1])
time_array = arange(len(time), dtype=float)
counts_array = arange(len(counts))
time_array[0:] = time
counts_array[0:] = counts
def model(time_array0, coeffs0):
a = coeffs0[0] + coeffs0[1] * np.exp( - ((time_array0-coeffs0[2])/coeffs0[3])**2 )
b = coeffs0[4] + coeffs0[5] * np.exp( - ((time_array0-coeffs0[6])/coeffs0[7])**2 )
c = a+b
return c
def residuals(coeffs, counts_array, time_array):
return …Run Code Online (Sandbox Code Playgroud) 我写了一个python脚本但是在我的脚本中意外地放了一个无限循环.
我如何杀死这个过程?我试过ctrl+c但没有成功.
还有其他选择吗?
我在Mac OS X 10.7.2上使用python 2.7
我正试图覆盖条形图 ggplot2
我当前的代码生成条形图,但它们堆叠在一起.我不想要这个,我希望它们叠加,所以我可以看到每个条形高度的差异.
码:
library(ggplot2)
library(reshape)
x = c("Band 1", "Band 2", "Band 3")
y1 = c("1","2","3")
y2 = c("2","3","4")
to_plot <- data.frame(x=x,y1=y1,y2=y2)
melted<-melt(to_plot, id="x")
print(ggplot(melted,aes(x=x,y=value,fill=variable)) + geom_bar(stat="identity", alpha=.3))
Run Code Online (Sandbox Code Playgroud)
堆叠输出:

所以我在ggplot2中使用nls绘制功率曲线代码如下:
mass <- c(4120,4740,5550,5610,6520,6870,7080,8500,8960,10350,10480,10550,11450,11930,12180,13690,13760,13800,14050,14700,15340,15790,15990,17300,18460,18630,18650,20050,23270,24530,25030,27540,28370,33460,33930,34450,34500)
solv_acc <- c(2760,2990,2990,3180,3900,4010,4140,4680,4750,5330,4980,5860,5930,5570,5910,6790,6690,7020,6240,6620,6600,6860,7940,7600,8250,8530,7410,9160,9140,10300,10440,10390,11020,12640,11920,12110,12650)
df <- data.frame(Mass=log(mass),Solv=log(solv_acc))
plotter <- (ggplot(df, aes(x=Mass, y=Solv)) + geom_point(shape=1) + stat_smooth(method = "nls", formula = y~i*x^z, start=list(i=1,z=0.2)))
plotter <- plotter + labs(x = "Mass kDa" ,y = "Solvent Accessibility")
print(plotter)
Run Code Online (Sandbox Code Playgroud)
运行上面的代码我收到以下错误:
Error in pred$fit : $ operator is invalid for atomic vectors
Run Code Online (Sandbox Code Playgroud)
我假设它尝试使用时发生错误predict()?
当我nls在同一数据帧上不使用ggplot2 执行时,我没有收到错误
> nls1=nls(Solv~i*Mass^z,start=list(i=1,z=0.2),data=df)
> predict(nls1)
[1] 7.893393 7.997985 8.115253 8.123230 8.234519 8.273135 8.295350 8.429871 8.468550 8.574147 8.583270 8.588134 8.647895 8.677831 8.692939 8.777944 8.781648 8.783757 …Run Code Online (Sandbox Code Playgroud)