如何在域中,在同一图中绘制以下3个函数(即sin,cos和添加)t?
from numpy import *
import math
import matplotlib.pyplot as plt
t = linspace(0, 2*math.pi, 400)
a = sin(t)
b = cos(t)
c = a + b
Run Code Online (Sandbox Code Playgroud) 我有数据,其中我有一个变量z,包含大约4000个值(从0.0到1.0),直方图看起来像这样.

现在我需要生成一个随机变量,调用它random_z应该复制上面的分布.
到目前为止,我所尝试的是生成一个以1.0为中心的正态分布,这样我就可以删除1.0以上的所有内容,以获得类似的分布.我一直在使用numpy.random.normal但问题是我无法将范围设置为0.0到1.0,因为通常正态分布的均值= 0.0且std dev = 1.0.
还有另一种方法可以在Python中生成此分发吗?
我有一个清单,让我们说:
list_A = [0,0,0,1.0,2.0,3.0,2.0,1.0,0,0,0]
Run Code Online (Sandbox Code Playgroud)
我想找到list_A> 0的这个列表的最小和最大索引.
即在上面的例子中,它将是3和7.
对于其他单调增加的列表,我一直在使用np.searchsorted,就像np.searchsorted(list,[0.5,1.0])找到列表所在的索引一样between 0.5 and 1.0.
但是这种情况完全不同,在np.searchsorted这里不起作用,或者它可能以我不知道的方式进行!
我知道我们可以在matplotlib中生成一个单独的下标
$r_i
Run Code Online (Sandbox Code Playgroud)
会给我一个以"我"作为下标的r.
但我想生成一个带有3或4个字母的下标,比如r_ijk应该给我一个以"ijk"作为下标的r.
当我执行上述操作时,我只获得第一个("i")作为下标,其余("j"和"k")正在成为正常的脚本.
我有两个使用matplotlib散射函数绘制的变量.
I would like to show the 68% confidence region by highlighting it in the plot.我知道要在直方图中显示它,但我不知道如何为这样的2D图(x vs y)做这个.在我的情况下,x is Mass和y is Ngal Mstar+2.
我正在寻找的示例图像如下所示:
在这里,他们使用浅蓝色显示了使用深蓝色和95%置信区域的68%置信区域.
可以使用其中一个scipy.stats模块实现吗?

我在天空中有一组近10000点.它们使用天空中的RA(右上升)和DEC(赤纬)绘制.绘制时,它们采用圆形.

我想要做的是将圆切成8个相等的部分,一次删除一个部分并使用其余部分进行一些计算.
为此,我想到了这个插图,即使用弧切片.
我知道弧的方程式由下式给出:
S = r * theta
Run Code Online (Sandbox Code Playgroud)
哪里
r --> radius
theta --> angle (in our case 45 degrees)
Run Code Online (Sandbox Code Playgroud)
我会以某种方式喜欢这样做:
slice1 = []
for a,b in zip(ra,dec):
if a>some value and a<some value and b>some value and b<some value:
slice1.append(a,b)
Run Code Online (Sandbox Code Playgroud)
如果它们是正方形,则变得非常简单,并且可以立即应用上述等式.
所以一旦我得到了切片,我就可以做一个numpy.where()找出我圈子的其余部分.
我只需提一下即可轻松将其切成四片min(RA),max(RA),min(DEC) and max(DEC).我为第一象限做的一个这样的例子会给我这样的:
RA>0.0 and RA<max(RA) DEC>0.0 and DEC<max(DEC)
Run Code Online (Sandbox Code Playgroud)

我不知道如何在我的情况下这样做(即进入8个象限!!),其中我只有我的数据点的x,y坐标!
为了执行合适,我目前正在使用curve_fitfrom scipy.optimize.
我已经计算了与我的每个相关的错误ydata,我想将sigma = y_errors数据中计算出的当前值添加到拟合中,
即最小化sum( ((f(xdata, *popt) - ydata) / sigma)**2 )而不是仅仅sum( (f(xdata, *popt) - ydata)).
我可以看到可以sigma在文档中分配参数.我不清楚的是absolute_sigma参数.文档中给出的解释对我来说很混乱.
我应该设置absolute_sigma= = True吗?或者它应该设置为False如果我需要考虑y_errors与我的每一个相关联ydata?
我正在尝试对两个“半”正态分布的总和进行积分。scipy.integrate.quad当我尝试在小范围内进行积分时工作正常,但在大范围内进行积分时返回 0。这是代码:
mu1 = 0
mu2 = 0
std1 = 1
std2 = 1
def integral_fun(x):
nor1 = 0.5 * ((1 / (np.sqrt(2 * np.pi) * std1)) * (np.e ** ((-(x-mu1) ** 2) / (2 * std1 **2))))
nor2 = 0.5 * ((1 / (np.sqrt(2 * np.pi) * std2)) * (np.e ** ((-(x-mu2) ** 2) / (2 * std2 **2))))
return nor1 + nor2
integrate.quad(integral_fun, -5, 5)
Out[54]: (0.9999994266968564, 8.668320228277793e-10)
integrate.quad(integral_fun, -10, 10)
Out[55]: (1.0000000000000002, 8.671029607900576e-10)
integrate.quad(integral_fun, -100000, …Run Code Online (Sandbox Code Playgroud) 我有三个字符串,其中包含街道名称和公寓号的信息。
"32 Syndicate street","Street 45 No 100"和"15, Tom and Jerry Street"
这里,
"32 Syndicate street" -> {"street name": "Syndicate street", "apartment number": "32"}
"Street 45 No 100" -> {"street name": "Street 45", "apartment number": "No 100"}
"15, Tom and Jerry Street" -> {"street name": "Tom and Jerry Street", "apartment number": "15"}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 Python 的正则表达式分别获取街道名称和公寓号。这是我当前的代码,它有问题:
import re
for i in ["32 Syndicate street","Street 45 No 100","15, Tom and Jerry Street"]:
###--- write patterns for street names
pattern_street …Run Code Online (Sandbox Code Playgroud)