小编pol*_*ian的帖子

在 Windows 10 上安装 Detectron2

我尝试按照此官方存储库安装 Facebook 的 Detectron2 。遵循该存储库,Detectron2 只能安装在 Linux 上。但是,我正在开发在 Windows 操作员上运行的服务器。有人知道如何在 Windows 上安装它吗?

python python-3.x deep-learning pytorch object-detection-api

10
推荐指数
3
解决办法
3万
查看次数

Plotly:如何绘制具有共享 x 轴的多条线?

我希望在同一画布内有一个多线图,与相同的 x 轴相连,如图所示

在此输入图像描述

使用子图并不能达到预期的目的。

import plotly.express as px
from plotly.subplots import make_subplots
import plotly.graph_objects as go

fig = make_subplots(rows=2, shared_xaxes=True,vertical_spacing=0.1)
fig.add_scatter(y=[2, 1, 3], row=1, col=1)
fig.add_scatter(y=[1, 3, 2], row=2, col=1)
fig.show()
Run Code Online (Sandbox Code Playgroud)

我可以知道如何做到这一点吗?如果有人能指出好的阅读材料,我将不胜感激

python plotly plotly-dash

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

在 python 中调试 argpars

我可以知道调试 argpars 函数的最佳实践是什么。

\n\n

假设我有一个 py 文件 test_file.py ,其中包含以下几行

\n\n
# Script start\nimport argparse\nimport os\nparser = argparse.ArgumentParser()\nparser.add_argument(\xe2\x80\x9c\xe2\x80\x93output_dir\xe2\x80\x9d, type=str, default=\xe2\x80\x9d/data/xx\xe2\x80\x9d)\nargs = parser.parse_args()\nos.makedirs(args.output_dir)\n# Script stop\n
Run Code Online (Sandbox Code Playgroud)\n\n

可以通过以下方式从终端执行上述脚本:

\n\n
python test_file.py \xe2\x80\x93output_dir data/xx\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,对于调试过程,我想避免使用终端。因此解决方法是

\n\n
# other line were commented for debugging process\n# Thus, active line are\n# Script start\nimport os\nargs = {\xe2\x80\x9coutput_dir\xe2\x80\x9d:\xe2\x80\x9ddata/xx\xe2\x80\x9d}\nos.makedirs(args.output_dir)\n#Script stop\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,我无法执行修改后的脚本。我可以知道我错过了什么吗?

\n

python pycharm argparse

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

如何使用 Plotly 创建垂直滚动条?

我想在 Plotly 中为折线图创建一个垂直滚动。为了可视化,垂直滚动如下图所示。

在此处输入图片说明

假设我们有如下6个折线图,那么我们如何在画布上创建一个垂直滚动条

import plotly.graph_objects as go
import plotly.io as pio
from plotly.subplots import make_subplots
import pandas as pd

# data
pio.templates.default = "plotly_white"
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
df = df.set_index('Date')
df.tail()
cols = df.columns[:-4]
ncols = len(cols)

# subplot setup
fig = make_subplots(rows=ncols, cols=1, shared_xaxes=True)

for i, col in enumerate(cols, start=1):
    fig.add_trace(go.Scatter(x=df[col].index, y=df[col].values), row=i, col=1)

fig.show()
Run Code Online (Sandbox Code Playgroud)

感谢您提供任何提示或好的阅读材料。

python plotly plotly-dash plotly-python

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

在 Windows 10 ruby​​ on Rails 中连接到 Redis 服务器

我在 Windows 10 上的 Rails 应用程序中连接到 Redis 时遇到问题,我将 Redis 添加到了 gem 文件中并设置了 Cable.yml 文件。当我启动 Rails 服务器时遇到的错误是rescue in establish_connection': Timed out connecting to Redis on localhost:6379如何解决这个问题。

电缆.yml

development:
  adapter: redis
  url: redis://localhost:6379/1

test:
  adapter: async

production:
  adapter: redis
  url: redis://localhost:6379/1
Run Code Online (Sandbox Code Playgroud)

命令行

C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/redis-3.2.0/lib/redis/client.rb:318:in `rescue in establish_connection': Timed out connecting to Redis on localhost:6379 (Redis::CannotConnectError)
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/redis-3.2.0/lib/redis/client.rb:311:in `establish_connection'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/redis-3.2.0/lib/redis/client.rb:91:in `block in connect'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/redis-3.2.0/lib/redis/client.rb:273:in `with_reconnect'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/redis-3.2.0/lib/redis/client.rb:90:in `connect'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/redis-3.2.0/lib/redis/client.rb:256:in `with_socket_timeout'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/redis-3.2.0/lib/redis/client.rb:267:in `without_socket_timeout'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/redis-3.2.0/lib/redis/client.rb:122:in `call_loop'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/redis-3.2.0/lib/redis/subscribe.rb:35:in `subscription' …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails redis

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

出现错误:找不到带有标签的句柄来放入图例中。将图例移出框外时 使用 kdeplot 和 searborn 进行绘图时

我正在使用seaborn kdeplot 绘制kde 图。

time_window_order=['272','268','264','260','256','252','248','244','240']
order_dict = {k:i for i,k in enumerate(time_window_order)}
df =DataFrame ({'time_window':['268','268','268','264','252','252','252','240',
                               '256','256','256','256','252','252','252','240'],
                'seq_no':['a','a','a','a','a','a','a','a',
                          'b','b','b','b','b','b','b','b']})
df['centre_point'] = df['time_window'].map(order_dict)

g =sns.kdeplot(data=df, x="centre_point",hue='seq_no', bw_adjust=0.8);plt.xlim(0,len(time_window_order)-1);plt.grid()
g.legend(loc='center left', bbox_to_anchor=(1, 0.5)) # move legend outside the box
plt.xticks(ticks = range(0,len(time_window_order)) ,labels = time_window_order, rotation = 'vertical')
plt.show()
Run Code Online (Sandbox Code Playgroud)

我尝试使用[link]legend线重新定位盒子外部。g.legend(loc='center left', bbox_to_anchor=(1, 0.5))

相反,编译器返回错误

未发现带有标签的句柄可放入图例中。

此外,图例不是完整的图例,而是看起来像一个小矩形,如下图红色箭头所示。 在此输入图像描述

我可以知道如何解决这个问题吗?

python plot seaborn

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

根据条件合并两个 pandas 数据框

目标是df如果满足预定条件,则按行组合两行。具体来说,如果列之间的差异小于或等于 a threshold,则连接 的行df

给定两个df:df1和df2,以下代码部分实现了目标。

import pandas as pd

df1 = pd.DataFrame ( {'time': [2, 3, 4, 24, 31]} )
df2 = pd.DataFrame (  {'time': [4.1, 24.7, 31.4, 5]} )
th = 0.9
all_comb=[]
for index, row in df1.iterrows ():
    for index2, row2 in df2.iterrows ():
        diff = abs ( row ['time'] - row2 ['time'] )
        if diff <= th:
            all_comb.append({'idx_1':index,'time_1':row ['time'], 'idx_2':index2,'time_2':row2 ['time']})
df_all = pd.DataFrame(all_comb)
Run Code Online (Sandbox Code Playgroud)

输出的

       idx_1  time_1  idx_2  time_2
0 …
Run Code Online (Sandbox Code Playgroud)

python join pandas

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

调试时模拟argparse命令行参数输入

该线程是先前版本的扩展,可以在此处找到。说,我有一个用于两个目的的代码:1)从整数列表中打印一个最大数;2)新建一个目录。

import argparse
import os

parser = argparse.ArgumentParser()
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                    help='an integer for the accumulator')

parser.add_argument('--sum', dest='accumulate', action='store_const',
                    const=sum, default=sum,
                    help='sum the integers (default: find the max)')

parser.add_argument("--output_dir", type=str, default="data/xx")

def main(args):
    os.makedirs(args.output_dir)
    print args.accumulate(args.integers)

if __name__=='__main__':
    args = parser.parse_args()  # Disable during debugging @ Run through terminal
    # args = argparse.Namespace(integers = 1, output_dir= 'mydata_223ss32')  # Disable when run through terminal: For debugging process
    main(args)
Run Code Online (Sandbox Code Playgroud)

这些语句可以从终端执行

python test_file.py --output_dir data/xxxx 2 2 5 --sum
Run Code Online (Sandbox Code Playgroud)

但是,对于调试过程,我想跳过终端的用法。从 …

python pycharm argparse

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

如何使用Python在常规网格上的每个点上方堆叠内核?

这个想法是在沿 1D 散布的每个点上方堆叠一个内核。具体来说,内核的峰值与每个点的 x 轴点对齐/居中。这类似于 内核密度估计,除了如下图所示,每个点仅堆叠一半内核。

在此处输入图片说明

最终,将计算每个密度的总和,并将产生一条曲线(即灰线),如下所示。

作为起点,我挖掘了scikit学习模块的核密度估计以获得一个想法。但是,我没有找到任何关于它们在每个点顶部内核的堆栈的方式/位置的任何行。

如果有人可以为我提供很好的阅读材料以实现这一目标,我真的很感激。

在此处输入图片说明

python kernel-density scikit-learn

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

如何高效检查元素是否在引用列表的范围内并获取索引引用列表?

这个想法是检查列表中的每个元素(即,data_list)是否在引用列表(即,range_list)的范围内。如果它在引用列表中,则提取range_list它出现在引用列表 ( ) 的哪个索引处。

起草了以下代码。

    lst=range(0,1000,1)
    n=6
    range_list=[lst [i:i + n] for i in range ( 0, len ( lst ), n )]

    data_list=[1,2,5,6,8,10,12,100, 102, 104, 105]
    idx_un=[]
    for x in data_list:
        for idx,y in enumerate(range_list):
            if min(y)<= x <= max ( y ):
                idx_un.append(idx)
                break
Run Code Online (Sandbox Code Playgroud)

输出:

[0, 0, 0, 1, 1, 1, 2, 16, 17, 17, 17]
Run Code Online (Sandbox Code Playgroud)

但我很好奇是否存在更紧凑和有效的方法。

python performance list

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

无法加入熊猫中的数据框

我有两个df。第一个 df 是多索引,另一个是典型的单索引。

在此处输入图片说明

图 1:多索引 df

在此处输入图片说明

图 2:单一索引

加入这两个df后,出现以下错误

不能在没有重叠索引名称的情况下连接

我怀疑,这个错误是由于第一个 df 中的索引列造成的(图 1)。

甚至,交换索引名称和典型数值也无济于事

在此处输入图片说明

图 2:多索引 df

我可以知道如何解决这个错误吗?

提前感谢您所花费的时间

python merge join multi-index pandas

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

如何在Python中动态高效地更新HTML/字符串?

目标是在给定“list_header”列表的情况下动态更新 HTML/字符串。

要输入到html列表中的列表

list_header=['Coffee','Tea','Milk']
Run Code Online (Sandbox Code Playgroud)

预定义的 html 模板

html = """
   <tr>
       <th>List of header name:</th>
   </tr>
<ol>

</ol>
"""
Run Code Online (Sandbox Code Playgroud)

预期结果

html = """
   <tr>
       <th>List of header name:</th>
   </tr>
<ol>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ol>
"""
Run Code Online (Sandbox Code Playgroud)

我尝试使用如下的查找和附加方法,但它会省略上面的部分

line = '<li> </li>'
index = line.find('</ol>')
output_line = line[:index] + list_header[0] + line[index:]
Run Code Online (Sandbox Code Playgroud)

感谢您提供链接到良好参考资料的帮助。

html python string

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

如何在 Python 中以不同的 n 次重复列表的元素?

这个想法是在每个不同的n时间重复列表的元素,如下所示。

ls = [7, 3, 11, 5, 2, 3, 4, 4, 2, 3]
id_list_fname = ['S11', 'S15', 'S16', 'S17', 'S19', 'S3', 'S4', 'S5', 'S6', 'S9']
all_ls = []
for id, repeat in zip(id_list_fname, ls):
    res = [ele for ele in[id] for i in range(repeat)]
    all_ls.append(res)
Run Code Online (Sandbox Code Playgroud)

因此,我希望结果是一个单一的平面列表,我实现如下。

def flatten(lst):
    for item in lst:
        if isinstance(item, list):
            yield from flatten(item)
        else:
            yield item

final_output = list(flatten(all_ls))
Run Code Online (Sandbox Code Playgroud)

的输出final_output

['S11', 'S11', 'S11', 'S11', 'S11', 'S11', 'S11', 'S15', 'S15', 'S15',
 'S16', …
Run Code Online (Sandbox Code Playgroud)

python iterator list

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