小编mad*_*ast的帖子

直方图Matplotlib

所以我有一点问题.我有一个scipy的数据集已经是直方图格式,所以我有bin的中心和每个bin的事件数.我现在如何绘制直方图.我试着做

bins, n=hist()
Run Code Online (Sandbox Code Playgroud)

但它不喜欢那样.有什么建议?

python numpy matplotlib histogram scipy

101
推荐指数
6
解决办法
15万
查看次数

Matplotlib - 已经分箱数据的阶梯直方图

我正在尝试获取已经分箱数据的直方图.我一直在尝试使用bar()它,但我似乎无法弄清楚如何使它成为像这样的阶梯式直方图,而不是填充的直方图.

在此输入图像描述

python numpy matplotlib scipy

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

savetxt如何将类型从float64更改为int或double

我一直试图savetxt在numpy中使用该功能.我遇到的问题是,即使我认为我相应地定义了我的变量,即int()或double(),我得到的文本文件也有浮动.我怎么能改变呢?

输入如下: pNoise=[int(i), around(pNoise[0], decimals=3), around(pNoise[1], decimals=3), around(pNoise[2], decimals=3)]

savetxt行如下: savetxt(noutF, pNoisetot)

我的期望是:0 1.567 8.865相反,我得到了0.000000000000000000e+00 1.015909999999999940e+02 2.600000000000000089e-01

python numpy scipy

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

Python - 日期时间不能正确计算闰秒?

我正在解析一些具有leapsecond timestampe datetime的数据2012-06-30T23:59:60.209215.我使用以下代码来解析该字符串并转换为datetime对象:

    nofrag, frag = t.split('.')
    nofrag_dt = datetime.datetime.strptime(nofrag, "%Y-%m-%dT%H:%M:%S")
    dt = nofrag_dt.replace(microsecond=int(frag))
Run Code Online (Sandbox Code Playgroud)

Python文档声称这不应该是%S接受的问题[0, 61].但是,我在上面的时间戳中得到了这个错误

nofrag_dt = datetime.datetime.strptime(nofrag, "%Y-%m-%dT%H:%M:%S")
ValueError: second must be in 0..59
Run Code Online (Sandbox Code Playgroud)

谢谢

python datetime leap-second

11
推荐指数
2
解决办法
2620
查看次数

在环空中创建随机数

我正在尝试生成一个环形内的随机数,即我们有一个最大和最小半径.我试过做:

while True:
    x=random.uniform(-maxR, maxR)
    y=random.uniform(-maxR, maxR)
    R=math.sqrt(x**2 + y**2)
    if R <= maxRadius and R >= minRadius:
        if x>= -maxRadius and x <= maxRadius and x<=-minRadius and x>= minRadius:
            print "passed x"
            if y>= -maxRadius and y <= maxRadius and y<=-minRadius and y>= minRadius: 
                break
Run Code Online (Sandbox Code Playgroud)

但这很慢.是否有可能提供更多的约束random.uniform或是否有另一种方法?

python random

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

Python/Numpy/Scipy - 将字符串转换为数学函数

我有点不幸尝试将程序从CERN ROOT的深度转换为python.在ROOT代码中(CINT本身就是一个憎恶的imo),人们可以将数学函数存储为"字符串"并将它们传递给ROOT以进行拟合,绘图等,因为ROOT将这些定义为"字符串".

目前,数学函数作为一条线存储在简单的文本文件中,即

(1+[1])^(1+[1])/TMath::Gamma(1+[1]) * x^[1]/[0]^(1+[1]) * exp(-(1+[1])*x/[0])
Run Code Online (Sandbox Code Playgroud)

然后在读取文件时由C++提取为字符串.python中有类似的东西吗?我知道的是numexpr,但我似乎无法使用相同的上述工具,即

(1+p[1])**(1+p[1])/scipy.special.Gamma(1+p[1]) * x**p[1]/p[0]**(1+p[1]) * numpy.exp(-(1+p[1])*x/p[0])
Run Code Online (Sandbox Code Playgroud)

提前感谢一堆.

python numpy scipy root-framework

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

Python,Numpy - 尝试根据条件拆分数组

我试图在数组内找到簇(即数组中的组,其中[n + 1]和[n]之间的差小于某个值).我有一个numpy数组,是一系列时间戳.我可以使用numpy.diff()找到时间戳之间的区别,但是我很难在没有循环遍历数组的情况下尝试确定簇.举例说明:

t = t = np.array([ 147, 5729, 5794, 5806, 6798, 8756, 8772, 8776, 9976])
dt  = np.diff(t)
dt = array([5582,   65,   12,  992, 1958,   16,    4, 1200])
Run Code Online (Sandbox Code Playgroud)

如果我的聚类条件是dt <100 t [1],则t [2]和t [3]将是一个聚类,t [5],t [6]和t [7]将是另一个聚类.我尝试过使用numpy.where(),但是我没有成功将条件调整到正确分离出集群,即

cluster1 = np.array([5729, 5794, 5806])
cluster2 = np.array([8756, 8772, 8776])
Run Code Online (Sandbox Code Playgroud)

或类似的东西.

任何帮助表示赞赏.

python numpy scipy

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

Matplotlib - imshow twiny() 问题

我试图在 matplotlib imshow() 图中有两个相互依赖的 x 轴。我将底部 x 轴作为半径的平方,而我希望顶部仅作为半径。到目前为止我已经尝试过:

ax8 = ax7.twiny()
ax8._sharex = ax7
fmtr = FuncFormatter(lambda x,pos: np.sqrt(x) )
ax8.xaxis.set_major_formatter(fmtr)
ax8.set_xlabel("Radius [m]")
Run Code Online (Sandbox Code Playgroud)

其中 ax7 是 y 轴和底部 x 轴(或半径平方)。我没有得到 sqrt (x_bottom) 作为顶部的刻度,而是得到了从 0 到 1 的范围。我该如何解决这个问题?

预先非常感谢。

python matplotlib

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