小编Sam*_*ton的帖子

使用matplotlib在CDF直方图结束时的垂直线

我正在尝试创建CDF,但在图表的末尾,有一条垂直线,如下所示:

情节

我已经读过他是因为matplotlib使用bin的末尾来绘制垂直线,这是有意义的,所以我在我的代码中添加了:

bins = sorted(X) + [np.inf]
Run Code Online (Sandbox Code Playgroud)

其中X是我正在使用的数据集,并在绘图时将bin大小设置为:

plt.hist(X, bins = bins, cumulative = True, histtype = 'step', color = 'b')
Run Code Online (Sandbox Code Playgroud)

这确实会删除末尾的行并产生所需的效果,但是当我对此图表进行规范化时,它会产生错误:

ymin = max(ymin*0.9, minimum) if not input_empty else minimum

UnboundLocalError: local variable 'ymin' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

无论如何要用数据标准化数据

bins = sorted(X) + [np.inf]
Run Code Online (Sandbox Code Playgroud)

在我的代码中还是有另一种方法来删除图表上的行?

python matplotlib pandas

10
推荐指数
2
解决办法
1589
查看次数

在 numpy 数组中更改值

所以我有一个 2D numpy 数组 (256,256),包含 0 到 10 之间的值,它本质上是一个图像。我需要删除 0 值并将它们设置为 NaN,以便我可以使用特定库 (APLpy) 绘制数组。但是,每当我尝试更改所有 0 值时,其他一些值都会被更改,在某些情况下会更改为原始值的 100 倍(不知道为什么)。

我正在使用的代码是:

for index, value in np.ndenumerate(tex_data):
    if value == 0:
        tex_data[index] = 'NaN'
Run Code Online (Sandbox Code Playgroud)

其中 tex_data 是我需要从中删除零的数据数组。不幸的是,我不能只对不需要的值使用掩码,因为据我所知,除了掩码数组之外,APLpy 不会。

无论如何我可以将 0 值设置为 NaN 而不更改数组中的其他值?

python arrays numpy enumerate

4
推荐指数
1
解决办法
1403
查看次数

如何使用 Flask 在 HTML 页面之间传递变量

我是 Flask 的新手,我一直在尝试在两个网页之间传递一个变量。第一个是一个简单的表单来接受一个数字,第二个页面只显示输入的内容。

表单页面的 HTML:

<!doctype html>
<html>
<body>
    <form action ="{{ url_for('return_form', glon="glon") }}" method="post">
            Galactic Longitude: <input type="text" name="glon">
        <button type="submit">Submit</button>
    </form>
</body>
</html> 
Run Code Online (Sandbox Code Playgroud)

显示页面的 HTML:

<!doctype html>
<body>

<p> {{ glon }} </p>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Flask 脚本目前看起来像这样:

from flask import Flask
from flask import render_template, url_for, request, redirect
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/form/', methods = ['GET', 'POST'])
def form():
    if request.method == 'POST':
        glon = request.form['glon']
        #glat = request.form['glat']

        return redirect(url_for('return_form', glon=glon))

    return …
Run Code Online (Sandbox Code Playgroud)

html python flask

2
推荐指数
1
解决办法
9007
查看次数

在pandas中添加两行以形成一个长行

希望是一个简单的问题,但我有两个DataFrame,根据我正在寻找的名称,我从中抽取了一行:

mmb_df[mmb_df['name'] == mmb_name]

jps_df[jps_df['name'] == jps_name]
Run Code Online (Sandbox Code Playgroud)

这给了我两行,每行约60列,而我想做的就是将它们组合在一起,这样我就有了一行120列.有些列确实有相同的名称,但我不确定这是否有所不同.

如果我有两行如下:

name     tag   x    y 
001_Dc   F     243  567

name     tag   position1    position2
jps_043  EW    908          219
Run Code Online (Sandbox Code Playgroud)

我只需要它们:

name     tag   x    y     name      tag   position1   position2
001_Dc   F     243  567   jps_043   EW    908         219
Run Code Online (Sandbox Code Playgroud)

我确信这可以轻松完成,但我没有运气.

python dataframe pandas

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

标签 统计

python ×4

pandas ×2

arrays ×1

dataframe ×1

enumerate ×1

flask ×1

html ×1

matplotlib ×1

numpy ×1